File类常用构造方法及方法详解

发布于:2024-07-05 ⋅ 阅读:(20) ⋅ 点赞:(0)

        File类是对文件或者目录的一系列操作。如文件和目录的创建、检查、删除、路径获取等。现介绍下常用构造方法和方法。

一、构造方法。

        File类提供了多个构造方法来创建File对象,以表示文件或目录。

1. File(String pathname)

通过指定文件路径名创建File对象。

  • 参数:pathname为文件的路径名,也可以是一个纯目录,可以是绝对路径或者相对路径。

2. File(String parent, String child)

通过指定父路径和子路径创建File对象。

  • 参数:parent为父路径名,child为子路径名。

3. File(File parent, String child)

通过指定父File对象和子路径创建File对象。

  • 参数:parent为父File对象,child为子路径名。

创建c:\example\exapmle.txt文件

File parentDir = new File("C:\\example");
File file = new File(parentDir, "example.txt");

三、常用方法

   Java中的File类提供了许多常用的方法,用于操作文件和目录。

exists():检查文件或目录是否存在。
createNewFile():创建新文件。如果文件已经存在,则不会创建,并返回false。
mkdir():创建目录。如果目录已经存在,则不会创建,并返回false。
mkdirs():创建目录,包括所有必要的父目录。
delete():删除文件或目录。
getName():获取文件或目录的名称。
getPath():获取文件或目录的路径。
isFile():检查File对象是否表示一个文件。
isDirectory():检查File对象是否表示一个目录。
length():获取文件的大小。
list():返回目录中的文件和目录名数组。
listFiles():返回目录中的文件和目录对象数组。

相关代码:

 public static void main(String[] args) {
        //D:\temp\新建文件夹目录下的文件及目录结构如下
        //D:\temp\新建文件夹\aaa.txt
        // D:\temp\新建文件夹\xx.txt
        // D:\temp\新建文件夹\vv
        // D:\temp\新建文件夹\vv\zzz.txt
        fileTest("D:\\temp\\新建文件夹");
        
        
        //获取D:\temp\新建文件夹目录及子目录下所有文件名的绝对路径
        List<String> dirname = getDirAllFile("D:\\temp\\新建文件夹");
        System.out.println("dirname = " + dirname.toString());


    }

public static void fileTest(String path){
        File file = new File(path);
        //获取path目录(只能是目录,不能包含文件名)下的File对象(文件/目录对象),
        // 且只能获取当前目录下,不能获取子目录下
        File[] files = file.listFiles();
        for (File f : files){
            String fName = f.getName();
            String absolutePath = f.getAbsolutePath();
            System.out.println("fName = " + fName + " ,absolutePath=" + absolutePath + " ,Filetostr=" + f.toString());
            System.out.println("isFile = " + f.isFile() + " ,isDir=" + f.isDirectory() + " isExist=" + f.exists());
            System.out.println("getPath = " + f.getPath() + " ,parentPath=" + f.getParent());
        }
        //获取path目录(只能是目录,不能包含文件名)下的File对象的名字,不包含目录
        // 且只能获取当前目录下,不能获取子目录下
        String[] list = file.list();
        for (String str : list){
            System.out.println("str = " + str);
        }
    }

//获取某目录及子目录下所有文件的绝对路径
public static List<String> getDirAllFile(String path){
        File file = new File(path);
        File[] files = file.listFiles();
        List<String> rt = new ArrayList<>();
        for (File f : files){

            if(!f.isDirectory()){
                rt.add(f.getAbsolutePath());
            }
        }

        for (File ff : files){
            if (ff.isDirectory()){
                rt.addAll(getDirAllFile(ff.getAbsolutePath()));
            }
        }

        return rt;
    }

输出:


网站公告

今日签到

点亮在社区的每一天
去签到