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。
2100

被折叠的 条评论
为什么被折叠?



