MENU

Java-59 File类

December 16, 2023 • Read: 64 • Java阅读设置

File类

File类的说明

File类是指java.io.File,一个File类对象是指一个文件或文件目录的抽象的路径的表示,可以理解为一个File对象就是指一个文件或一个文件目录。

File的作用:

  • File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
  • 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。
  • File对象可以作为参数传递给流的构造器。

File对象的创建

File类有四个构造器,这里先学习前三个:

  • public File(String pathname): 以指定的pathname为路径创建File对象,可以是绝对路径或相对路径。如果是相对路径,在IDEA中的Test中则是相当于当前的Module中,否则相当于当前的工程路径。
  • public File(String parent, String child): parent为上一层目录,child为在指定上一层目录下的路径,以指定的parent下的child为路径创建File对象。
  • public File(File parent, String child): 指定File对象为上一层目录,child为在指定上一层目录下的路径,以指定的parent下的child为路径创建File对象。

在以字符串形式指定文件路径时,注意路径中的每级目录之间用一个路径分隔符隔开。
路径分隔符和系统有关:

  • Windows和DOS系统默认使用\来表示;
  • UNIX和URL使用/来表示。

Java程序支持跨平台运行,因此路径分隔符要慎用。

为了解决这个隐患,File类提供了一个常量:public static final String separator,该常量根据操作系统,动态地提供分隔符。
2023-12-16T04:39:59.png

创建File对象的示例:
2023-12-16T04:50:20.png

File类的常用方法

1 获取方法

  • public String getAbsolutePath():获取绝对路径;
  • public String getPath():获取路径,注意该路径参考的是实例化时的路径,如果该File对象在创建时用的是相对路径,该路径就是相对路径,如果该File对象在创建时用的是绝对路径,该路径就是绝对路径;
  • public String getName():获取名称;
  • public String getParent():获取上层文件目录路径,如果没有,则返回null;注意该上一层目录参考的是实例化时的路径,如果该File对象在创建时用的是相对路径,则该方法返回null,如果该File对象在创建时用的是绝对路径,则该方法会按照绝对路径来返回上一层目录。
  • public long length():获取文件长度,默认为0,即文件或目录还不存在时为0;
  • public long lastModified():获取最后一次的修改时间,毫秒值,默认为0,即文件或目录还不存在时为0;
  • public String[] list():获取指定目录或文件下的所有文件或目录名称数组,如果指定的是文件,则返回null
  • public File[] listFiles():获取指定目录或文件下的所有文件或目录对应的File对象数组,如果指定的是文件,则返回null

2023-12-16T05:20:18.png
2023-12-16T05:20:27.png
2023-12-16T05:20:37.png
2023-12-16T05:23:46.png

2 重命名

  • public boolean renameTo(File dest): 把文件重命名为指定文件。要求指定为的重命名的File即参数dest指定的文件或目录不存在,并且要重命名的File存在。
    2023-12-16T05:30:32.png
    2023-12-16T05:34:27.png

3 判断

  • public boolean isDirectory():判断是否为文件目录;
  • public boolean isFile():判断是否为文件;
  • public boolean isHidden():判断是否隐藏;
  • public boolean exists():判断是否存在;
  • public boolean canRead():判断是否可读,如果文件或目录不存在默认就是false;
  • public boolean canWrite():判断是否可写,如果文件或目录不存在默认就是false。
    2023-12-16T05:45:35.png
    2023-12-16T05:45:47.png

4 创建

  • public boolean createNewFile() throws IOException: 创建文件。如果文件存在,则创建失败,返回false;
  • public boolean mkdir(): 创建一个文件目录。如果文件目录存在或者要求创建多个文件目录,则创建失败,返回false;
  • public boolean mkdirs():创建文件目录,如果上层文件目录也不存在,一并创建。
    2023-12-16T05:51:25.png
    2023-12-16T05:55:12.png
    2023-12-16T05:56:55.png

5 删除

  • public boolean delete(): 删除文件或目录。注意Java中的删除不走回收站,并且只能删除单个文件或目录。
    2023-12-16T06:00:14.png
    2023-12-16T06:02:17.png
Last Modified: December 19, 2023