博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

IO之File类

Posted on 2020-08-06 21:25  池塘鱼  阅读(94)  评论(0)    收藏  举报

一、概述

java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。并且因为java.io.File类是抽象表示,任何操作系统都可以使用。

二、路径

  • 绝对路径:是一个完整的路径,以盘符开头(如C:)。
  • 相对路径:是一个简化的路径,相对于当前路径拼接。
  • 注意:路径不区分大小写Windows中路径分隔符使用两个反斜杠,因为转义字符的存在,两个反斜杠字符相当一一个反斜杠字符。

三、成员变量和构造方法

  • 成员变量:

成员变量 描述

static String pathSeparator

static char pathSeparatorChar

路径分隔符字符,与系统相关,在Windows中是英文分号;  在Linux中是英文冒号: 。

前者和后者是一个东西,只是前者是字符串表示。

static String separator

static char separatorChar

文件名称分隔符,与系统有关,在Windows中是反斜杠\  在Linux中是正斜杠/。

前者和后者是一个东西,只是前者是字符串表示。

注意:因为路径分隔符和文件名称分隔符因系统不同而不同,因此需要在不通过平台使用时,注意分隔符不要写死,可以获取分隔符后再拼接路径。

  • 构造方法:

方法 描述
File(String pathname) 以文件名作为参数,创建File实例。
File(String parent, String child) 以父路径名字符串和子路径名字符串为参数,创建File实例。
File(File parent, String child) 以父路径File和子路径File作为参数,创建File实例。
注意:创建File对象,只是把给定路径或文件抽象封装,因此并不在意路径的真实性(可存在可不存在)、路径可文件可文件夹、可绝对路径可相对路径

 

三、常用方法

 

功能类型
方法
 描述
创建

public boolean createNewFile() 
throws IOException
当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
如果该文件不存在就创建,返回true,如果该文件已经存在就不创建,返回false。
 注意:①路径要求真实存在,否则会报IOException异常。
②此方法只能创建文件,不能创建文件夹,即使不加文件后缀名也不行,也只会是没有后缀名的文件。
  public boolean mkdir()

   创建单级空文件夹。单级:如"pp\\temp"。 

   如果路径不存在就去创建,返回true,如果该路径已存在或路径错误,返回false。

   注意: 此方法只能创建文件夹,不能创建文件,即使加文件后缀名也不行,也只会是有后缀名的文件夹。

public boolean mkdirs()

创建单级或多级空文件夹。
如果路径不存在就去创建,返回true,如果该路径已存在或路径错误,返回false。

注意:此方法只能创建文件夹,不能创建文件,即使加文件后缀名也不行,也只会是有后缀名的文件夹。
删除
public boolean delete()
 
删除指定的文件或文件夹。
如果成功删除,返回true;如果删除失败或路径错误,返回false。
注意:该删除不走回收站,直接从硬盘上删除,使用需谨慎。
获取



public String getAbsolutePath()

  返回此File表示的绝对路径字符串。

  无论构造函数的参数路径的是绝对路径还是相对路径,此方法返回的都是绝对路径。

public String getPath()

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

  即获取构造函数传入的路径,传入绝对路径则返回绝对路径,传入相对路径则返回相对路径。

public String getName()

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

  即获取构造参数传入的路径的结尾部分(文件/文件夹)。

public int length()

  返回由此抽象路径名表示的文件的长度。

  如果是文件,则返回其大小,以字节为单位;如果给出的路径不存在或者是文件夹,则返回0。

判断


public boolean exists()

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

  如果存在,则返回true;如果不存在,则返回false。

public boolean isDirectory()

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

  即判断构造方法中给定的路径是否以目录结尾,是则返回true,否则返回false。

 注意:①路径不存在也返回false,所以使用前最好判断一下是否存在。

 ②电脑中只有文件/文件夹,该方法和 isFile() 互斥。

 

public boolean isFile()
 

  测试此抽象路径名表示的文件是否为文件。

  即判断构造方法中给定的路径是否以文件结尾,是则返回true,否则返回false。

   注意:①路径不存在也返回false,所以使用前最好判断一下是否存在。

 ②电脑中只有文件/文件夹,该方法和 isDirectory() 互斥。

 

遍历

public String[] list()

 返回一个字符串数组String[],命名由此抽象路径名表示的目录中的文件和目录。

 注意:①返回相对路径。

 ②只表示一级,也就是当前位置下的文件和文件夹,不再深入。如果要递归目录,可以自行编写方法。

 

 

public File[] listFiles()

 返回一个抽象路径名数组File[],表示由该抽象路径名表示的目录中的文件。

 注意:①返回绝对路径。

 ②只表示一级,也就是当前位置下的文件和文件夹,不再深入。如果要递归目录,可以自行编写方法

   
public String toString()

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

 底层调用了该类的getPath(),返回值和getPath()一样。