File
文件和目录路径名的抽象表示。
- 文件和目录是可以通过File封装成对象的
- 对于 File 而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名。它可以是存在的,也可以是不存在的,将来要通过具体的操作把这个路径的内容转换为具体存在
File 构造方法
方法名 | 说明 |
---|
File(String pathname) | 通过将给定的路径名字符串转换为抽象路径名来创建新的 File 实例 |
File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的 File 实例 |
File(File parent, String child) | 从父抽象路径名和子路径名字符串创建新的 File 实例 |
File f1 = new File("D//test123//123.txt");
System.out.println(f1);
File f2 = new File("D//test123", "123.txt");
System.out.println(f2);
File f3 = new File(new File("D//test123"), "123.txt");
System.out.println(f3);
File 创建方法
方法名 | 说明 |
---|
boolean createNewFile() | 当且仅当具有该名称的文件尚不存在时,原子的创建一个由该抽象路径名命名的新的空文件 |
boolean mkdir() | 创建由此抽象路径名命名的目录 |
boolean mkdirs() | 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录 |
File f1 = new File("a666");
System.out.println(f1.mkdirs());
File f2 = new File("D://a666");
System.out.println(f2.mkdirs());
File f3 = new File("a666//b666");
System.out.println(f3.mkdir());
File f4 = new File("a666//b666//java.txt");
System.out.println(f4.mkdir());
相对路径和绝对路径的区别
- 相对路径:必须使用取自其他路径名的信息进行解释。例如:a666
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件或目录。例如:D://a666
File 判断和获取方法
方法名 | 说明 |
---|
boolean isDirectory() | 测试此抽象路径名表示的文件是否为目录 |
boolean isFile() | 测试此抽象路径名表示的文件是否为普通文件 |
boolean exists() | 测试此抽象路径名表示的文件或目录是否存在 |
String getAbsolutePath() | 返回此抽象路径名的绝对路径名字符串 |
String getPath() | 将此抽象路径名转换为路径名字符串 |
String getName() | 返回由此抽象路径名表示的文件或目录的名称 |
String[] list() | 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录 |
File[] listFiles() | 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件 |
File f1 = new File("D://a666//b666//c666");
f1.mkdirs();
File f2 = new File("D://a666//b666//java.txt");
f2.createNewFile();
File f3 = new File("D://a666//b666");
System.out.println(f3.isDirectory());
System.out.println(f3.isFile());
System.out.println(f3.exists());
System.out.println(f3.getAbsolutePath());
System.out.println(f3.getPath());
System.out.println(f3.getName());
System.out.println(Arrays.toString(f3.list()));
System.out.println(Arrays.toString(f3.listFiles()));
System.out.println("--------");
File f4 = new File("a666//b666");
System.out.println(f4.getAbsolutePath());
System.out.println(f4.getPath());
File 删除方法
方法名 | 说明 |
---|
boolean delete() | 删除由此抽象路径名表示的文件或目录 |
File f1 = new File("a666//b666");
System.out.println(f1.delete());
File f2 = new File("a666//b666//java.txt");
System.out.println(f2.delete());
System.out.println(f1.delete());
删除目录时的注意事项
- 如果一个目录中有内容(目录,文件),则不能直接删除。应该先删除目录中的内容,最后才能删除目录