一、概述
文件和目录路径名的抽象表示形式。
File更应该叫做一个路径,文件路径或者文件夹路径;路径分为绝对路径和相对路径,绝对路径是一个固定的路径,从盘符开始;相对路径相对于某个位置,在eclipse下是指当前项目下。
二、构造方法
根据 parent 抽象路径名和 child 路径名字符串创建一个新
File(File parent, String child)
实例。
File
通过将给定路径名字符串转换为抽象路径名来创建一个新
File(String pathname)
实例。
File
根据 parent 路径名字符串和 child 路径名字符串创建一个新
File(String parent, String child)
实例。
File
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。
File(URI uri)
File file = new File("F:\\java学习\\day01.avi");
File file = new File("xxx.txt");
String parent = "F:\\java学习";
String child = "day01.avi";
File file = new File(parent,child);
File parent = new File("F:\\java学习");
String child = "day01.avi";
File file = new File(parent, child);
注:第一种方式比起第三种方式,可以更加方便的使用File类中的相关方法
三、File类的创建功能
boolean
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
createNewFile()
boolean
创建此抽象路径名指定的目录。
mkdir()
boolean
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
mkdirs()
File file = new File("yyy.txt");
System.out.println(file.createNewFile()); //如果没有就创建,返回true
File dir1 = new File("aaa");
System.out.println(dir1.mkdir());
File dir2 = new File("bbb.txt"); //这样写是可以的,文件夹也是可以有后缀的
System.out.println(dir2.mkdir());
File dir3 = new File("ccc\\ddd");
System.out.println(dir3.mkdirs()); //创建多级目录
四、File类的重命名和删除功能
boolean
重新命名此抽象路径名表示的文件。
renameTo(File dest)
boolean
删除此抽象路径名表示的文件或目录。
delete()
重命名注意事项
- 如果路径名相同,就是改名。
- 如果路径名不同,就是改名并剪切。
File file1 = new File("ooo.txt");
File file2 = new File("D:\\xxx.txt");
System.out.println(file1.renameTo(file2));
删除注意事项:
- Java中的删除不走回收站。
- 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹; windows中也是,先遍历删除每一个文件然后再删除文件夹。
File file1 = new File("yyy.txt");
System.out.println(file1.delete());
File file2 = new File("aaa");
System.out.println(file2.delete());
File file3 = new File("ccc"); //如果删除一个文件夹,那么文件夹必须是空的
System.out.println(file3.delete());
五、File类的判断功能
boolean
测试此抽象路径名表示的文件是否是一个目录。
isDirectory()
boolean
测试此抽象路径名表示的文件是否是一个标准文件。
isFile()
boolean
测试此抽象路径名表示的文件或目录是否存在。
exists()
boolean
测试应用程序是否可以执行此抽象路径名表示的文件。
canExecute()
boolean
测试应用程序是否可以读取此抽象路径名表示的文件。
canRead()
boolean
测试应用程序是否可以修改此抽象路径名表示的文件。
canWrite()
boolean
测试此抽象路径名指定的文件是否是一个隐藏文件。
isHidden()
File file = new File("zzz");
file.setReadable(false);
System.out.println(file.canRead()); //windows系统认为所有的文件都是可读的
file.setWritable(true);
System.out.println(file.canWrite()); //windows系统可以设置为不可写
File file2 = new File("aaa.txt");
System.out.println(file2.isHidden()); //判断是否是隐藏文件
System.out.println(file.isHidden());
六、File类的获取功能
String
返回此抽象路径名的绝对路径名字符串。
getAbsolutePath()
String
将此抽象路径名转换为一个路径名字符串。
getPath()
String
返回由此抽象路径名表示的文件或目录的名称。
getName()
long
返回由此抽象路径名表示的文件的长度。
length()
long
返回此抽象路径名表示的文件最后一次被修改的时间。
lastModified()
String[]
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
list()
File[]
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
listFiles()
File dir = new File("F:/");
String[] arr = dir.list(); //仅为了获取文件名
for (String string : arr) {
System.out.println(string);
}
File[] subFiles = dir.listFiles();
for (File file : subFiles) { //获取文件对象
System.out.println(file);
}