自学内容网 自学内容网

Day(16)--File

File

File对象就是表示一个路径,可以是文件路径,也可以是文件夹的路径

这个路径可以是存在的,也允许是不存在的

  • 常见的方法

    public File(String pathname);//根据文件路径创建文件对象
    public File(String parent,String child);//根据父路径名字字符串和子路径名字字符串创建文件对象
    public File(File parent,String child);//根据父路径对应文件对象和子路径名字符串创建文件对象

路径

相对路径:是不带盘符的,默认到当前项目下去找

绝对路径:是带盘符的

常见方法

在 Java 中,java.io.File类提供了许多用于操作文件和目录的方法。以下是一些常见的方法:

一、文件基本信息获取方法

  1. getName()

    • 返回此抽象路径名表示的文件或目录的名称。

    • 如果调用者是一个文件,那返回的就是文件名加文件后缀名

    • 如果调用者是一个文件夹,那返回的就是一个文件夹的名字

    • 例如:

     File file = new File("test.txt");
     String name = file.getName();
     System.out.println(name); // 输出:test.txt
  1. getPath()

    • 将此抽象路径名转换为一个路径名字符串。

    • 例如:

     File file = new File("test.txt");
     String path = file.getPath();
     System.out.println(path); // 输出:test.txt(如果在当前目录下)
  1. getAbsolutePath()

    • 返回此抽象路径名的绝对路径名字符串。

    • 例如:

     File file = new File("test.txt");
     String absolutePath = file.getAbsolutePath();
     System.out.println(absolutePath); // 输出:具体的绝对路径,如 /home/user/test.txt
  1. length()

    • 返回此抽象路径名表示的文件的长度(以字节为单位)。如果文件不存在,则返回 0。

    • 这个方法只能获取文件大小,单位是!!!字节

    • 如果单位是M,G,可以不断除以1024

      len/1024 ==KB

      len/1024/1024 == MB

      三次 ===G

    • 这个方法无法获得文件夹的大小,需要把这个文件夹里面的文件大小都累加起来了

    • 例如:

     File file = new File("test.txt");
     long length = file.length();
     System.out.println(length);

二、文件判断方法

  1. exists()

    • 测试此抽象路径名表示的文件或目录是否存在。

    • 例如:

     File file = new File("test.txt");
     boolean exists = file.exists();
     System.out.println(exists);
  1. isFile()

    • 测试此抽象路径名表示的文件是否是一个标准文件。

    • 例如:

     File file = new File("test.txt");
     boolean isFile = file.isFile();
     System.out.println(isFile);
  1. isDirectory()

    • 测试此抽象路径名表示的文件是否是一个目录。

    • 例如:

     File file = new File("test.txt");
     boolean isDirectory = file.isDirectory();
     System.out.println(isDirectory);

三、文件操作方法

  1. createNewFile()

    • 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

    • 如果父级路径是不存在的那么方法会有异常

    • createNewFile方法创建的一定是一个文件,如果路径中不包括后缀名则创建的是一个没有后缀名的文件

    • 例如:

     File file = new File("newFile.txt");
     try {
         boolean created = file.createNewFile();
         if (created) {
             System.out.println("文件创建成功!");
         } else {
             System.out.println("文件已存在!");
         }
     } catch (IOException e) {
         e.printStackTrace();
     }
  1. delete()

    • 删除此抽象路径名表示的文件或目录。

    • 如果删除的是文件,则直接删除,不走回收站

      如果删除的是空文件夹,则直接删除,不走回收站

      如果删除的是有内容的文件夹,则删除失败

    • 例如:

     File file = new File("toDelete.txt");
     boolean deleted = file.delete();
     System.out.println(deleted? "文件删除成功!" : "文件删除失败!");

四、目录操作方法

  1. mkdir()

    • 创建此抽象路径名指定的目录。

    • windows操作系统中,路径是不能重复的

    • 只能创建单级文件夹,不能创建多级文件夹

    • 例如:

     File directory = new File("newDirectory");
     boolean created = directory.mkdir();
     System.out.println(created? "目录创建成功!" : "目录创建失败!");
  1. mkdirs()

    • 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

    • 既可以创建单级的文件夹也可以创建多级的

    • 例如:

     File deepDirectory = new File("parent/child/newDirectory");
     boolean created = deepDirectory.mkdirs();
     System.out.println(created? "目录创建成功!" : "目录创建失败!");

五、文件列表方法

  1. list()

    • 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

    • 例如:

     File directory = new File("/home/user");
     String[] files = directory.list();
     if (files!= null) {
         for (String file : files) {
             System.out.println(file);
         }
     }
  1. listFiles()

    • 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。

    • 获取文件夹里的所有内容,把所有内容放到数组中返回。依次表示

    • 当调用者File表示的路径不存在时,返回null

    • 当调用者File表示的路径是文件时,返回null

    • 当调用者File表示的路径是一个空文件夹的时候,返回的是一个长度为0的数组

    • 当调用者File表示的路径是一个有内容的文件夹时,将里面所有的文件和文件夹的路径放在File数组中返回。如果有隐藏文件夹,也一起返回

    • 当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

    • 例如:

     File directory = new File("/home/user");
     File[] files = directory.listFiles();
     if (files!= null) {
         for (File file : files) {
             System.out.println(file.getName());
         }
     }


原文地址:https://blog.csdn.net/2301_80336940/article/details/142706642

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!