一、概述
文件和目录路径名的抽象表示形式。
File更应该叫做一个路径,文件路径或者文件夹路径;路径分为绝对路径和相对路径,绝对路径是一个固定的路径,从盘符开始;相对路径相对于某个位置,在eclipse下是指当前项目下。
二、构造方法
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 |
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 |
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 |
File(URI uri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。 |
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 | 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 | 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 | 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类的获取功能
long | length() 返回由此抽象路径名表示的文件的长度。 |
String[] | list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 |
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);
}