File类

File类

java.io.file

文件和路径名的抽象表示形式,java把电脑中的文件和文件夹封装成了一个file类,我们可以使用File类对文件/文件夹进行操作

可以使用file类方法:

  • 创建文件/文件夹
  • 删除文件/文件夹
  • 获取文件/文件夹
  • 判断文件/文件夹是否存在
  • 对文件进行遍历
  • 获取文件的大小

**重点:**记住三个单词

file:文件

directory:文件夹/目录

path:路径

一、File类的静态成员变量
static String pathSeparator = File.pathSeparator; //与系统有关的路径分隔符,它被表示成一个字符串  Win  ;   linux  :
static cha rseparaorrChar= File.separator//与系统有关的默认名称分隔符。

二、绝对路径和相对路径

绝对路径是完整的路径: 以盘符(C:)开始 C:\\dir\\a.txt

相对路径是相对于当前项目的根目录:a.txt(省略项目的根目录)

注意事项:

​ 1.路径不区分大小写

​ 2.路径中的文件分隔符windows使用反斜杠。反斜杠是转义字符,需要写两个\\代表一个\.

三、构造方法

1.File(String str);

**File**(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。


2.File(String parent ,String child);
public File(String parent,String child)

根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
如果 parent 为 null,则创建一个新的 File
实例,这与调用以给定 child 路径名字符串作为参数的单参数 File 构造方法效果一样。
否则,parent 路径名字符串用于表示目录,child 路径名字符串用于表示目录或文件。如果
child 路径名字符串是绝对路径名,则用与系统有关的方式将它转换为一个相对路径名。如果 parent
是空字符串,则通过将 child 转换为抽象路径名,并根据与系统有关的默认目录解析结果来创建新的 File
实例。否则,将每个路径名字符串转换为一个抽象路径名,并根据父抽象路径名解析子抽象路径名。

参数:
parent - 父路径名字符串
child - 子路径名字符串

3.File(File parent,String child);

根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
如果 parent 为 null,则创建一个新的 File
实例,这与调用给定 child 路径名字符串的单参数 File 构造方法的效果一样。
否则,parent 抽象路径名用于表示目录,child 路径名字符串用于表示目录或文件。如果
child 路径名字符串是绝对路径名,则用与系统有关的方式将它转换为一个相对路径名。如果 parent
是空抽象路径名,则通过将 child 转换为抽象路径名,并根据与系统有关的默认目录解析结果来创建新的
File 实例。否则,将每个路径名字符串转换为一个抽象路径名,并根据父抽象路径名解析子抽象路径名。

参数:
parent - 父抽象路径名
child - 子路径名字符串

File parent = new File("c:\\");
File file = new File(parent."helloWorld.txt");
sout(file);//->c:\helloWorld.txt

四、常用方法

1.public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。

File f1 = new File("E:\\learning\\20190222javaee\\z\\a.txt");
String absolutePath1 = f1.getAbsolutePath();//不管f1是相对路径还是绝对路径,返回值均是绝对的路径

**2.public String getPath()**将此抽象路径名转换为一个路径名字符串。所得字符串使用默认名称分隔符分隔名称序列中的名称。 绝对返回的就是绝对路径,相对返回的就是相对路径。

**3.public String getName()**返回由此抽象路径名表示的文件或目录的名称。该名称是路径名名称序列中的最后一个名称。如果路径名名称序列为空,则返回空字符串。

File f1 = new File("E:\\learning\\20190222javaee\\z\\a.txt");
String name = f1.getName();//->a.txt

File f2 = new File("E:\\learning\\20190222javaee\\zfile);
String name = f2.getName();//->zfile

**4.public long length()**返回由此File表示的文件的长度。

如果路径不存在,方法返回值就是0;

文件夹是没有大小概念的,返回值也是0;

File f1 = new File("E:\\learning\\20190222javaee\\z\\a.txt");
Long l1= f1.length();//文件的大小  以字节为单位

五、判断功能方法

**1.public boolean exists();**测试此抽象路径名表示的文件或目录是否存在。 (构造方法中的路径是否存在)

File f1 = new File("E:\\learning\\20190222javaee\\z\\a.txt");
boolean result = f1.exists();

**2.public boolean isDirectory()**测试此抽象路径名表示的文件是否是一个目录。

**3.public boolean isFile()**测试此抽象路径名表示的文件是否是一个标准文件。如果该文件不是一个目录,并且满足其他与系统有关的标准,那么该文件是标准 文件。由 Java
应用程序创建的所有非目录文件一定是标准文件

方法2、3使用前提:路径是存在的,否则返回false

六、创建和删除功能的方法

1.创建文件

public boolean createNewFile() throws IOException

当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。检查文件是否存在,若不存在则创建该文件,这是单个操作,对于其他所有可能影响该文件的文件系统活动来说,该操作是不可分的。
注:此方法不应该 用于文件锁定,因为所得协议可能无法可靠地工作。应该使用 FileLock 机制替代。

2.删除文件/文件夹

public boolean delete()

删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。

返回:
当且仅当成功删除文件或目录时,返回 true;否则返回 false

3.public boolean mkdir()

public boolean mkdir()

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

返回:
当且仅当已创建目录时,返回 true;否则返回 false

4.public boolean mkdirs()

public boolean mkdirs()

创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。

返回:
当且仅当已创建目录以及所有必需的父目录时,返回 true;否则返回 false

七、File类遍历目录功能

1.public String[] list()

public String[] list()

返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
如果此抽象路径名不表示一个目录,那么此方法将返回
null。否则返回一个字符串数组,每个数组元素对应目录中的每个文件或目录。表示目录本身及其父目录的名称不包括在结果中。每个字符串是一个文件名,而不是一条完整路径。
不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。

返回:
字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果此抽象路径名不表示一个目录,或者发生 I/O
错误,则返回 null。

2.public File[] listFiles()

public File[] listFiles()

返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
如果此抽象路径名不表示一个目录,那么此方法将返回 null。否则返回一个 File
对象数组,每个数组元素对应目录中的每个文件或目录。表示目录本身及其父目录的名称不包括在结果中。得到的每个抽象路径名都是根据此抽象路径名,使用 File(File, String)
构造方法构造的。所以,如果此路径名是绝对路径名,那么得到的每个路径名都是绝对路径名;如果此路径名是相对路径名,那么得到的每个路径名都是相对于同一目录的路径名。
不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。

返回:
抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O
错误,则返回 null。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值