Java的File类

一、概述

   File是描述一个文件或者文件夹亦称为目录的类。

   File中有两种创建file对象的方法:File(String pathname)和 File(File parent, String child);

  1、通过路径名创建file文件

        //1.表示创建了一个file对象指向D盘的a.txt
        //只是将传入的字符串标记为一个file对象
        //实际上此时并不去计算机中检查这个文件是否存在
        File file = new File("D:a.txt");
        //File file = new File("D:\test.txt");
        //File file = new File("D:\a\b\c");
        
        //2.创建文件
        //当且仅当这个文件不存在时候,才会创建一个新文件
        //这个方法只能用于创建文件
        boolean b = file.createNewFile();

 2、通过父路径和子路径创建file对象

 本质上是拼接父路径和子路径,然后创建file对象。

public void cutFile(File src, File dest) {
         if(src.isDirectory()) {
             return;
         }         
         //获取要剪切的文件的名字
         String fileName =src.getName();
         //创建同名文件
         File newFile = new File(dest, fileName);
}

二、路径

  1、目录间隔符

    在Windows中,用\间隔目录;在Linux或者是Unix中,是用/间隔目录,Java中为了屏蔽不同操作系统的差异性,所以提供了File.separator表示中间符。

  示例如下

File file = new File("D:"+ File.separator +"everydayNote" + File.separator + "Day08"
                + File.separator + "Day08 - 副本");

 2、路径间隔符

   在Windows中,用;间隔不同的路径;在Linux或者Unix中,用:间隔不同的路径,java中为了屏蔽不同操作系统的差异性,所以提供了File.pathSeparator表示间隔符;

 3、绝对路径:

    以盘符或者是/开头的路径。在计算路径的时候和当前路径没有任何关系

 4、相对路径:

    不以盘符或者是/开头的路径。在计算路径的时候需要以当前路径为基准进行计算。“../”表示上一层目录。

示例:

File file = new File("D:\a.txt");               
//1. 获取绝对路径 System.out.println(file.getAbsolutePath()); //2. 获取路径 System.out.println(file.getPath()); System.out.println(file.getParent());

三、File中常用的方法

 1、创建方法

  创建文件的方法:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回false

  创建单级目录的方法:mkdir(): 在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在就抛异常。

  创建多级目录:mkdirs() 在指定位置创建目录,这会创建路径中所有不存在的目录。

  重命名文件:renameTo(File dest) 重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于对文件进行剪切,剪切时候不能操作非空的文件夹。移动/重命名成功则返回true,失败则返回false。

 2、判断文件或者目录是否存在

   exists() 文件或文件夹是否存在。

   判断是否为一个文件:isFile() 是否是一个文件,如果不存在,则始终为false。

  判断是否为一个目录:isDirectory() 是否是一个目录,如果不存在,则始终为false。

  判断文件是否是为隐藏文件:isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。

  判断文件路径是否为绝对路径:isAbsolute() 测试此抽象路径名是否为绝对路径名。

3、获取方法

  获取目录下所有的子文件和字目录:listFiles()

  获取文件名:getName() 获取文件或文件夹的名称,不包含上级路径。

  获取文件路径:getPath()       返回绝对路径,可以是相对路径,但是目录要指定

  获取文件绝对路径:getAbsolutePath() 获取文件的绝对路径,与文件是否存在没关系

  获取文件路径:length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。

  获取文件父路径: getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。

  获取文件最后修改的时间:lastModified() 获取最后一次被修改的时间。

4、删除方法

  删除方法:delete() 删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。

  终止时删除方法:deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除

四、使用案例

  删除一个文件下所有的文件:

  思路:如果是文件则直接删除,如果是文件夹,则遍历该文件夹,然后删除其中的文件。

public static boolean deleteDirectory(String filePath) {
        File file = new File(filePath);
                
        if(file.isFile()) {
            file.delete();
        } else if(file.isDirectory()) {
            File[] fs = file.listFiles();
            for(File f : fs) {
                deleteDirectory(f);
            }            
        }
        
        file.delete();
        
        return true;
    }
原文地址:https://www.cnblogs.com/chhyan-dream/p/10770360.html