Java中File类的常用API

Java.io包下的File类实现了Serializable和Comparable两个接口

1.创建文件

注意:

1).如果D盘下file文件夹不存在,则抛出异常;如果D盘下file文件夹存在,则创建成功,返回true

2).如果D盘下file文件夹下已存在file.txt文件,则返回false

public static void main(String[] args) throws IOException {
        File file = new File("D:\\file\\file.txt");
        System.out.println("文件是否创建成功:"+file.createNewFile());
    }
}

2.判断文件是否存在

存在返回true;不存在返回false

 System.out.println("文件是否存在:"+file.exists());

3.判断是否是文件

是返回true;不是返回false

System.out.println("是否是文件:"+file.isFile());

4.文件重命名

成功返回true;不成功返回false;

注意:如果修改后的路径和修改前的路径不一致,会把修改前的文件剪切掉,然后再新路径下创建新的文件

File file2 = new File("D:\\file\\file2.txt");
System.out.println("文件重命名是否成功:"+file.renameTo(file2));

5.创建单级目录

创建成功返回true;创建失败返回false

注意:

1)如果目录已存在,返回false

2)mkdir()无法创建多级目录

File f = new File("D:\\dir");
System.out.println("创建单级目录是否成功:"+f.mkdir());

6.创建多级目录

创建成功返回true;创建失败返回false

注意:如果目录已存在,返回false

File f = new File("D:\\dir\\dir1\\dir2");
System.out.println("创建多级目录是否成功:"+f.mkdirs());

7.判断是否是文件夹

是返回true;不是返回false

System.out.println("是否是文件夹:"+f.isDirectory());

8.获取文件/文件夹的名称

注意:如果是获取文件夹,那么获取到的是最后一级的目录名

System.out.println("文件的名称:"+file.getName());
System.out.println("文件夹的名称:"+f.getName());

9.获取文件/文件夹的路径

9.1getPath()

注意:

1)返回的是定义时的路径,这个路径可能是相对路径,也可能是绝对路径,这个取决于你定义路径时的设置

2)返回值类型是String

System.out.println("文件路径字符串:"+file.getPath());
System.out.println("目录路径字符串"+f.getPath());

9.2getAbsolutePath()

注意:

1)返回的是绝对路径,即从根路径开始

2)返回值类型是String

System.out.println("文件路径字符串:"+file.getAbsolutePath());
System.out.println("目录路径字符串"+f.getAbsolutePath());

9.3getAbsoluteFile()

注意:

1)返回的是绝对路径,即从根路径开始

2)返回值类型是File

System.out.println("文件绝对路径:"+file.getAbsoluteFile());
System.out.println("目录绝对路径"+f.getAbsoluteFile());

10.删除文件/文件夹

删除成功返回true,删除失败返回false

注意:当删除文件夹时,delete()方法删除的是最后一级目录

System.out.println("文件是否删除成功:"+file.delete());
System.out.println("文件夹是否删除成功:"+f.delete());

11.获取文件/文件夹所在的目录名称

返回值类型为String

注意:返回的路径与定义File类时的路径一致

System.out.println("文件所在文件夹名称:"+file.getParent());//文件所在文件夹名称:D:\file
System.out.println("上级目录名称:"+f.getParent());//上级目录名称:D:\dir\dir1

12.获取文件大小

返回值类型是long

注意:返回的文件大小表示字节(一个英文占1字节,一个汉字占3字节)

System.out.println("文件大小:"+file.length());//文件大小:7

13.获取最后修改时间

返回值类型是long

long date = file.lastModified();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(simpleDateFormat.format(new Date(date)));//2020-05-13 13:35:45

14.获取目录下文件/文件夹

14.1 list()方法

返回值类型是字符串集合

注意:返回的是目录下的文件或文件夹,如果文件夹下还有文件,不会返回

  String[] list = f.list();
        for (String s : list) {
            System.out.println(s);
        }

14.2 listFiles()方法

返回值类型是File类型集合

注意:返回的是目录下的文件或文件夹,如果文件夹下还有文件,不会返回

 File[] files = f.listFiles();
        for (File fl : files) {
            System.out.println("目录下文件/文件夹名称:"+fl.getName());
        }

综合示例(递归,查看目录下所有的文件夹和文件)

 public static void main(String[] args) throws IOException {
        String rootPath = "D:\\dir";
        recursion(rootPath);

    }
   public static void recursion(String rootPath ) {
        File f1 = new File(rootPath);
        if (f1 != null) {
            if (f1.isDirectory()) {
                File[] files = f1.listFiles();
                if (files.length > 0) {
                    for (File file : files) {
                        if (file.isDirectory()) {
                            System.out.println(rootPath+"下"+"文件夹名称:" + file.getName());
                            recursion(file.getAbsolutePath());
                        } else {
                            System.out.println(rootPath+"下"+"文件名称:"+file.getName());
                        }
                    }
                } else {
                    System.out.println(rootPath+"目录下没有内容");
                }
            } else {
                System.out.println(rootPath + "不是目录");
            }
        } else {
            System.out.println("系统没有找到路径");
        }
    }

 

posted @ 2020-05-13 17:29  狼_少_年  阅读(3001)  评论(0编辑  收藏  举报