iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >一步步带你入门Java中File类
  • 342
分享到

一步步带你入门Java中File类

2024-04-02 19:04:59 342人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录概述构造方法基本介绍代码示例常用方法获取文件和目录的基本信息创建和删除功能目录遍历功能补充:移动文件总结概述 要学习Java中的File类,首先我们要知道,在Java的api中F

概述

学习Java中的File类,首先我们要知道,在Java的api中File类的定义,即文件和目录路径的抽象表现形式,不是文件本身。所以在File类中,所涉及到的操作都只是关于文件名称和目录路径的,而不是文件内容,如果想对文件内容进行操作,还得需要学习I/O流(输入/输出流)。

构造方法

基本介绍

只有构造了File类,我们后面才能对它进行操作。对于File类的构造下面介绍三种方法:
抽象表示的文件和目录的路径名:

  • public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
  • public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
  • public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。

第一个用的比较多,后面两个用的比较少

代码示例

import java.io.File;

public class FileDemo1 {
    public static void main(String[] args) {

        //public File(String pathname)
        String pathname1 = "F:\\test1.txt";
        File file1 = new File(pathname1);

        //public File(String pathname)
        String pathname2 = "F:\\test2\\test1.txt";
        File file2 = new File(pathname2);

        //下面用的少

        //public File(String parent, String child)
        String parent = "F:\\test3";
        String child = "test1.txt";
        File file3 = new File(parent,child);

        //public File(File parent, String child)
        File parentDir = new File("F:\\test");
        String child1 = "test2.txt";
        File file4 = new File(parentDir,child1);
        
    }
}

常用方法

File类的操作还是非常重要的,所以它的常用方法有很多个,为了方便记忆,我把它分为:

  • 获取文件和目录的基本信息
  • 判断功能
  • 创建和删除功能
  • 目录遍历功能

下面对这些方法分别进行介绍,并举例说明

获取文件和目录的基本信息

  • public String getName() :返回由此File表示的文件或目录的名称。
  • public String getPath() :将此File转换为路径名字符串。
  • public String getParent() :获得父级路径
  • public String getAbsolutePath() :返回此File的绝对路径名字符串

代码示例

import java.io.File;

public class FileDemo2 {
    public static void main(String[] args) {

        File file = new File("F:\\test1\\test2\\text.txt");

        //将此File转换为路径名字符串。
        System.out.println("文件路径:"+ file.getPath());
        //返回由此File表示的文件或目录的名称
        System.out.println("文件名称:"+ file.getName());
        //获得父级路径
        System.out.println("获得父级路径"+ file.getParent());
        //返回此File的绝对路径名字符串
        System.out.println("绝对路径名称" + file.getAbsolutePath());
    }
}

判断功能

  • public boolean exists() :此File表示的文件或目录是否实际存在。
  • public boolean isDirectory() :此File表示的是否为目录。
  • public boolean isFile() :此File表示的是否为文件。
  • public isAbsolute() :判断File对象对应的文件或目录是否是绝对路径
  • public boolean canRead() :判断File对象对应的文件或目录是否可读
  • public boolean canWrite() :判断File对象对应的文件或目录是否可写
  • public boolean isHidden() :判断File对象对应的文件或目录是否是否隐藏

如果文件或目录不存在,那么exists()、isFile()和isDirectory()都是返回true

代码示例

import java.io.File;

public class FileDemo3 {

    public static void main(String[] args) {
        File file1 = new File("F:\\test\\test1\\test2.txt");
        File file2 = new File("F:\\test");

        //此File表示的文件或目录是否实际存在
        boolean exists1 = file1.exists();
        boolean exists2 = file2.exists();
        System.out.println(exists1);
        System.out.println(exists2);

        //此File表示的是否为目录
        boolean directory1 = file1.isDirectory();
        boolean directory2 = file2.isDirectory();
        System.out.println(directory1);
        System.out.println(directory2);

        //此File表示的是否为文件
        boolean file1File = file1.isFile();
        boolean file2File = file2.isFile();
        System.out.println(file1File);
        System.out.println(file2File);

        //判断File对象对应的文件或目录是否是绝对路径
        boolean absolute = file1.isAbsolute();
        System.out.println(absolute);

        //判断File对象对应的文件或目录是否可读
        boolean canRead = file1.canRead();
        System.out.println(canRead);

        //判断File对象对应的文件或目录是否可写
        boolean canWrite = file1.canWrite();
        System.out.println(canWrite);

        //判断File对象对应的文件或目录是否是否隐藏
        boolean hidden = file2.isHidden();
        System.out.println(hidden);
    }
}

创建和删除功能

  • public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
  • public boolean delete() :删除由此File表示的文件或目录。只能删除空目录。
  • public boolean mkdir() :创建由此File表示的目录。
  • public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录

API中说明:delete方法,如果此File表示目录,则目录必须为空才能删除。

代码示例

import java.io.File;
import java.io.IOException;

public class FileDemo4 {
    public static void main(String[] args) throws IOException {
        //创建文件
        File file1 = new File("test.txt");
        System.out.println("是否存在:"+ file1.exists());//false
        System.out.println("是否创建"+ file1.createNewFile());//需要抛出异常
        System.out.println("是否存在:"+ file1.exists()); //true

        //创建目录(单个)
        File file2 = new File("F:\\test");
        System.out.println("是否存在:"+ file2.exists());//false
        System.out.println("是否创建"+ file2.mkdir());
        System.out.println("是否存在:"+ file2.exists()); //true

        //创建多级目录
        File file3 = new File("F:\\test1\\test2");
        System.out.println("是否存在:"+ file3.exists());//false
        System.out.println("是否创建"+ file3.mkdirs());
        System.out.println("是否存在:"+ file3.exists()); //true

        //文件的删除
        System.out.println(file1.delete());

        //目录的删除
        System.out.println(file2.delete());
        System.out.println(file3.delete());//只能删除一级

    }
}

目录遍历功能

  • public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录
  • public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录

调用listFiles方法的File对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。

代码示例

import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class FileDemo5 {
    public static void main(String[] args) {
        File dir = new File("F:\\test");
        dir.mkdirs();
        System.out.println(dir.exists());
        //File dir1 = new File("F:\\test");

        //获取当前目录下的文件及文件夹的名称
        String[] names = dir.list();
        //遍历
        for(String name : names){
            System.out.println(name);
        }

        //获取当前目录下的文件以及文件夹对象,只要拿到了文件对象,那么就可以获取更多信息
        File[] files = dir.listFiles();
        for(File file : files){
            System.out.println(file);
        }
    }
}

但对于多级目录的遍历,我们需要使用递归方法



import java.io.File;

public class FileDemo6 {
    public static void main(String[] args) {
        File dir = new File("F:\\test1");
        listSubFiles(dir);

    }

    private static void listSubFiles(File dir) {
        if(dir != null && dir.isDirectory()){
            File[] listFiles = dir.listFiles();
            if(dir != null){
                for(File sub : listFiles){
                    listSubFiles(sub);//递归调用
                }
            }
        }
        System.out.println(dir);
    }
}

补充:移动文件

public class Test5 {
    public static void main(String[] args){
        File f1 = new File("d:\\");
        moveFile(f1);
    }
public static void moveFile(File dir){
    File[] files=dir.listFiles();
    for(File file:files){
        if(file.isDirectory())
            moveFile(file);
        else{
            if(file.getName().endsWith(".java"))
                file.renameTo(new File("c:\\jad\\"+
            file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad"));
            }
        }
    }
}

总结

到此这篇关于Java中File类的文章就介绍到这了,更多相关Java中File类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 一步步带你入门Java中File类

本文链接: https://www.lsjlt.com/news/141560.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一步步带你入门Java中File类
    目录概述构造方法基本介绍代码示例常用方法获取文件和目录的基本信息创建和删除功能目录遍历功能补充:移动文件总结概述 要学习Java中的File类,首先我们要知道,在Java的API中F...
    99+
    2024-04-02
  • Java 容器框架教程:从入门到精通,一步步带你掌握!
    Java 是一门流行的编程语言,其容器框架是 Java 编程中最常用的工具之一。Java 容器框架提供了一组接口和类,可以存储和操作对象集合。这些容器包括 List、Set、Map 等。本教程将从 Java 容器框架的基础开始,一步步带你...
    99+
    2023-10-19
    容器 框架 教程
  • 一篇文章带你入门Java UML的类图
    目录一、什么是UML二、UML类图总结一、什么是UML 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档...
    99+
    2024-04-02
  • 一篇文章带你入门Java数据类型
    目录引言两个基本概念说明数据类型分类基本数据类型引用数据类型两者的区别总结引言 ♀ 小AD:明哥,昨天气死我了,明哥要帮我出气。 ♂ 明世隐:咋了,有谁惹到你了。 ♀ 小AD:昨天...
    99+
    2024-04-02
  • 入门java的第一步HelloWorld
    踏过JDK开发环境安装这所大门,我们正式走进了Java的世界。Java是一门面向对象的编程语言,不仅吸收了c++语言的各种有点,还摒弃了c++里难以理解的多继承,指针等概念,因此它具...
    99+
    2024-04-02
  • 带你入门Java的类与对象
    目录类和对象类的属性成员方法形参和实参局部变量可变参数构造方法this关键字this.属性名this.方法名this( )访问构造方法static关键字静态变量1)静态变量2)实例变...
    99+
    2024-04-02
  • 一篇文章带你入门java变量与类型
    目录整型变量基本语法格式代码示例长整型变量基本语法格式代码示例双精度浮点型变量基本语法格式代码示例单精度浮点型变量基本语法格式代码示例字符类型变量基本语法格式代码示例字节类型变量基本...
    99+
    2024-04-02
  • 一篇文章带你入门Java Script
    目录概述特点和Java的区别弱类型语言强类型语言书写位置数组函数JS中的自定义对象(扩展内容)Object形式的自定义对象JS中的事件常用的事件:动态注册基本步骤:DOM模型总结概述...
    99+
    2024-04-02
  • Python一步步带你操作Excel
    目录一、安装库的操作二、xlwt库使用三、xlrd库使用四、openpyxl库使用-写入数据五、openpyxl库使用-读取数据➤数据处理是 Python 的一大应用场景,而 Exc...
    99+
    2024-04-02
  • 4步带你从Web前端小白到入门!
    Web前端开发怎么入门,主要都有哪些要素组成?Web前端开发是由网页制作演变而来的,主要由HTML、CSS、JavaScript三大要素组成。专业的Web前端开发入门知识也一定会包含这些内容,下面就给大家简单介绍一下。...
    99+
    2023-06-03
  • HTML元素入门:一步步构建你的第一个网页
    HTML元素简介 HTML元素是网页的基本组成单元,它用于定义网页的内容和结构。每个HTML元素都有一个开始标签和一个结束标签,标签之间的内容就是元素的内容。例如,以下代码定义了一个HTML元素: <p>这是我的第一个网页。...
    99+
    2024-02-02
    HTML元素 HTML标签 网页搭建 HTML语法 HTML结构
  • 一篇文章带你入门Java变量
    目录引言概念变量的四个基本属性如何定义变量如何使用变量变量的特点总结引言 ♀ 小AD:明哥,我终于出了这口恶气了。 ♂ 明世隐:打爽了是吧。 ♀ 小AD:那必须的,打十盘我赢九盘,...
    99+
    2024-04-02
  • 带你一步步在CentOS安装GitLab
    随着现代软件开发流程的不断进化,版本控制系统已经成为每个开发团队必不可少的工具。而GitLab,作为一个完整的开源Git管理系统,已成为许多公司和组织的首选,使团队协同工作更加高效快捷。本文将带你一步步安装GitLab,并在CentOS 7...
    99+
    2023-10-22
  • 一篇文章带你入门Java接口
    目录什么是接口:关键字:创建接口代码展示:如何实现接口呢:实现接口代码展示:具体代码实现:接口继承和类继承的区别:总结什么是接口: 接口是一系列方法的声明,是一些方法特征的集合 注...
    99+
    2024-04-02
  • 一篇文章带你入门Java封装
    目录什么是封装如何实现封装代码展示构造方法注意点:代码展示总结封装的优点什么是封装 Java中的封装是将数据(变量)和作用于数据(方法)的代码作为一个单元包装在一起的机制。 在封装中...
    99+
    2024-04-02
  • 一篇文章带你入门java方法
    目录方法的使用什么是方法方法的语法基本语法代码示例注意事项方法的调用调用规则代码示例方法的重载引例使用重载重载规则方法递归递归定义代码示例递归执行过程分析总结方法的使用 什么是方法 ...
    99+
    2024-04-02
  • 一篇文章带你入门Java继承
    目录Java中继承什么是继承:为什么要用继承:学习总结:继承关键字:extends总结Java中继承 什么是继承: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实...
    99+
    2024-04-02
  • 一篇文章带你入门java泛型
    目录一、什么是泛型二、语法三、示例1、简单示例2、返回最大值-支持各种数据类型3、泛型类4、类型通配符总结一、什么是泛型 Java 泛型(generics)是 JDK 5 中引入的一...
    99+
    2024-04-02
  • 一篇文章带你入门java集合
    目录一、简介1、java集合框架图2、集合框架体系3、Set和List的区别二、ArrayList1、定义2、用实例了解ArrayList三、LinkedList1、语法2、示例四、...
    99+
    2024-04-02
  • 一篇文章带你入门java注解
    目录注解什么是注解内置注解元注解自定义注解实例总结注解 什么是注解 Annotation是从JDK5.0开始引入的新技术 Annotation的作用: ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作