File 类
一个 File 类的对象可以代表一个文件或者一个目录的路径,可以是相对路径也可以是绝对路径.当创建了一个对象后,就可以使用这个对象对其指定的目录/文件进行各种各样的操作了.
构造方法
方法 | 说明 |
---|---|
File(String pathname) | 根据一个路径得到File对象 |
File(String parent, String child) | 根据一个目录和一个子文件/目录得到File对象 |
File(File parent, String child) | 根据一个父File对象和一个子文件/目录得到File对象 |
就拿我电脑里的 “D:\tme\tmp\FileDemo.txt” 举例,第一个构造方法来获取对象这么写就行: File file = new File("D:/tme/tmp/FileDemo.txt")
第二个构造方法这么写: File file = new File("D:/tme/tmp","FileDemo.txt")
第三个构造方法需要现有一个 File 对象作为父级目录,然后再获得父级目录下面的子目录或子文件:
//先得dě有一个父级目录的对象
File par = new File("D:/tme/tmp");
//从父级目录获得子级对象
File file = new File(par, "FileDemo.txt");
参数地址也可以用斜杠而不用反斜杠,记得使用双斜杠转义一下:
new File("D:\\tme\\tmp\\FileDemo.txt")
new File("D:\tme\tmp\FileDemo.txt")
比较常用的方法
目录/文件创建
方法 | 说明 |
---|---|
boolean createNewFile() | 创建文件,如果存在则不创建 |
boolean mkdir() | 创建文件夹,如果存在则不创建 |
boolean mkdirs() | 创建文件夹,如果父文件夹不存在,会帮你创建出来 |
createNewFile()
使用该方法创建一个新文件,新文件的父级目录必须是已经存在的,记得写异常处理(IDE 生成即可)
//在指定目录创建一个txt文档
File file = new File("D:/tmp/tmp/FileDemo.txt");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
如果父级目录不存在则会报错,最后一行指出错误的类名以及行数
java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at File.FileCreateDemo.main(FileCreateDemo.java:10)
mkdir()
使用该方法创建一个新文件夹,新文件夹的父级目录必须是已经存在的
File file = new File("D:/tmp/tmp");
file.mkdir();
这里不需要异常捕捉,父级目录不存在不会报错但也不会创建新的目录
mkdirs()
使用该方法创建一个新文件夹,如果指定的父级目录不存在,照样给你创建出来
File file = new File("D:/tmp/tmp");
file.mkdirs();
不需要捕捉异常,我的电脑里 D 盘没有 tmp 这个文件夹,现在不仅有了而且还有一个 tmp 子文件夹
绝对地址/相对地址: 如果不写盘符或者根目录,则创建的文件/文件夹会产生于 IDE 的项目文件夹里
重命名和删除
方法 | 说明 |
---|---|
boolean renameTo(File dest) | 把文件重命名为指定的文件路径 |
boolean delete() | 删除文件或者文件夹 |
renameTo(File dest)
使用该方法对 File 对象进行重命名或者移动/重命名操作
如果目标对象指定的路径和源对象的路径相同,则进行重命名操作:
File file = new File("D:/tme/tmp/FileDemo.txt");
file.renameTo(new File("D:/tme/tmp/FileRenameDemo.txt"));
renameTo()
方法中传入的是 File 类的对象这里简写直接 new 了一个,也可以老老实实的创建对象后再使用:
File dest = new File("D:/tme/tmp/FileRenameDemo.txt");
file.renameTo(dest);
这样一来,FileDemo.txt 就被重命名为 FileRenameDemo.txt 了
如果目标对象指定的路径和源对象的路径不同,则进行移动操作,也可以移动的同时重命名:
File file = new File("D:/tme/tmp/FileRenameDemo.txt");
file.renameTo(new File("D:/tme/FileDemo.txt"));
D:/tme/tmp 文件夹下的 FileRenameDemo.txt 被移动到 D:/tme 文件夹并且重命名为 FileDemo.txt
delete()
使用该方法将会直接删除文件或文件夹,连回收站都找不到(不会走系统回收站)
File file = new File("D:/tme/tmp/FileRenameDemo.txt");
file.delete();
文件/文件夹属性判断
方法 | 说明 |
---|---|
boolean isDirectory() | 判断是否是目录 |
boolean isFile() | 判断是否是文件 |
boolean exists() | 判断文件(夹)是否存在 |