一篇文章搞定File类

一、File的介绍:

  • File类的一个对象,代表着一个文件或者一个文件目录(即文件夹)
  • File类声明在java.io包下
  • File类中涉及到关于文件或目录的创建,删除,重命名,修改时间,文件大小等方法,但是并没有涉及到写入或读取文件内容的操作,如果要读取或写入文件内容,必须使用IO流来完成。

二、File的构造方法:

image-20211014174908001

示例:

//不使用Java提供的分隔符,以下是针对windows平台
File file1 = new File("D:\\IO\\a.txt");
System.out.println(file1);    //输出:D:\IO\a.txt

//使用Java提供的分隔符
File file2 = new File("D:" + File.separator + "IO" + File.separator + "a.txt");
System.out.println(file2);    //输出:D:\IO\a.txt

//File(File parent,String child)
//从父抽象路径和子路径字符串创建新的File实例
File file3 = new File("D:");
File file4 = new File(file3, "IO" + File.separator + "a.txt");
System.out.println(file4);    //输出:D:\IO\a.txt

//File(String pathname)
//通过将给定的路径名字符串转化为抽象路径名来创建新的File实例
File file5 = new File("D:" + File.separator + "IO" + File.separator + "a.txt");
System.out.println(file5);    //输出:D:\IO\a.txt

//File(String parent,String child)
//通过父类路径名字符串和子路径名字符串来创建新的File实例
File file6 = new File("D:", "IO\\a.txt");
System.out.println(file6);   //输出:D:\IO\a.txt

三、File的相关方法和属性

属性:

image-20211014203002392

常用方法:

File的获取功能:

//先创建一个File对象
File file = new File("D:" + File.separator + "IO" + File.separator + "a.txt");

//获取绝对路径
String absolutePath = file.getAbsolutePath();
System.out.println(absolutePath);      //D:\IO\a.txt

//获取相对路径
String path = file.getPath();
System.out.println(path);       //D:\IO\a.txt

//获取名称
String name = file.getName();
System.out.println(name);        //a.txt

//获取上一层目录路径
String parent = file.getParent();
System.out.println(parent);      //D:\IO

//获取文件长度(字节数)
long length = file.length();
System.out.println(length);

//获取最后一次的修改时间(毫秒值)
long lastTime = file.lastModified();
System.out.println(lastTime);

File的判断功能:

//判断是否是目录
boolean isDirectory = file.isDirectory();
System.out.println(isDirectory);

//判断是否是文件
boolean isFile = file.isFile();
System.out.println(isFile);

//判断是否存在
boolean isExists = file.exists();
System.out.println(isExists);

//判断是否可读
boolean isRead = file.canRead();
System.out.println(isRead);

//判断是否可写
boolean isWrite = file.canWrite();
System.out.println(isWrite);

//判断是否隐藏
boolean isHidden = file.isHidden();
System.out.println(isHidden);

File的创建功能:

File file = new File("D:\\a.txt");

//创建文件,如果文件已经存在,则不创建,并返回false
boolean createNewFile = file.createNewFile();
System.out.println(createNewFile);

//创建文件目录,如果文件目录已经存在,则不创建。如果此文件的上层目录不存在,也不创建
boolean mkdir = file.mkdir();
System.out.println(mkdir);

//创建文件目录,如果上层目录不存在,一并创建
boolean mkdirs = file.mkdirs();
System.out.println(mkdirs);

File的删除功能:

//Java的删除不走回收站
//要删除一个文件目录,需要保证这个目录中不包含文件或者其他目录
boolean delete = file.delete();
System.out.println(delete);

目录相关:

//以下两个方法适用于目录

//获取指定目录下的所有文件和文件目录的名称数组
public String[] list();      
//获取指定目录下的所有文件和文件目录的File数组
public File[] listFiles();

剩下的方法没有什么好说的,详情请见 java8文档:File类接口,需要用到的时候再进行查询文档即可。

四、File小技巧

打印给定目录下的所有文件夹和文件夹里面的内容:

public void getFileList(File file){
    
    
    //第一级子目录
    File[] files = file.listFiles();
    for (File f : files) {
    
    
        System.out.println(f);
        if(f.isDirectory()){
    
    
            getFileList(f);
        }
    }
}
@Test
public void test(){
    
    
    File file = new File("D:\\data");
    getFileList(file);
}

猜你喜欢

转载自blog.csdn.net/OYMNCHR/article/details/120772261