_File类的概述和构造方法
-
File: 它是文件和目录路径名的抽象表示
-
文件和目录是可以通过File封装成对象的
-
对于File而言,其封装的并不是一个正真存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的
-
方法名 说明 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实列 File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的File实例 File(File parent,String child) 从父抽象路径名和子类路径名字符串创建新的File实例
-
-
package demo10; import java.io.File; public class FileDemo_01 { public static void main(String[] args) { /* File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实列 File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的File实例 File(File parent,String child) 从父抽象路径名和子类路径名字符串创建新的File实例 */ // File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实列 File f1 = new File("C:\\Users\\Alvord\\Desktop\\markdown学习\\book.txt"); // C:\Users\Alvord\Desktop\markdown学习\book.txt System.out.println(f1); // File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的File实例 File f2 = new File("C:\\Users\\Alvord\\Desktop\\markdown学习\\new", "book"); System.out.println(f2); // File(File parent,String child) 从父抽象路径名和子类路径名字符串创建新的File实例 File f3 = new File("C:\\Users\\Alvord\\Desktop\\markdown学习\\new"); File f4 = new File(f3, "book"); System.out.println(f4); } } =========================================== C:\Users\Alvord\Desktop\markdown学习\book.txt C:\Users\Alvord\Desktop\markdown学习\new\book C:\Users\Alvord\Desktop\markdown学习\new\book Process finished with exit code 0
_File 类创建功能
-
方法名 说明 public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径命名的新空文件 public boolean mkdir() 创建由此抽象路径命名的目录 public boolean mkdirs() 创建由此抽象路径命名的目录,包括任何必须但不存在的父目录 -
package demo10; import java.io.File; import java.io.IOException; public class FileDemo_02 { public static void main(String[] args) throws IOException { /* public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径命名的新空文件 public boolean mkdir() 创建由此抽象路径命名的目录 public boolean mkdirs() 创建由此抽象路径命名的目录,包括任何必须但不存在的父目录 */ // public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径命名的新空文件 File f1 = new File("C:\\Users\\Alvord\\Desktop\\markdown学习\\Book.txt"); System.out.println(f1.createNewFile()); // public boolean mkdir() 创建由此抽象路径命名的目录 File f2 = new File("C:\\Users\\Alvord\\Desktop\\markdown学习\\book"); System.out.println(f2.mkdir()); // public boolean mkdirs() 创建由此抽象路径命名的目录,包括任何必须但不存在的父目录 /* mkdir---> 可以一次创建多级文件 */ File f3 = new File("C:\\Users\\Alvord\\Desktop\\markdown学习\\File\\book"); System.out.println(f3.mkdirs()); } } ======================================== false false true Process finished with exit code 0
_File类判断和获取功能
-
方法名 说明 public boolean isDirectory() 测试此类对象路径名表示的File是否为目录 public boolean isFile() 测试此抽象路径名表示的File是否为路径 public boolean exists() 测试此抽象路径名表示的File是否存在 public String getAbsolutePath() 返回此抽象对象路径名的绝对路径名字符串 public String getPath() 将此抽象路径名转换为路径名字符串 public String getName() 返回由此抽象路径名表示的文件或目录名称 public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 public File[] listFile 返回此抽象路径名表示的目录中的文件和目录的File对象数组
File类删除功能
-
方法名 说明 public boolean delete() 删除由此抽象路径名表示的文件或目录 -
绝对路径名和相对路径名的区别
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。
- 相对路径名:必须使用取自其他路径名的信息进行解释。
-
删除目录时的注意事项:
- 如果一个目录中有内容(目录,文件),不能直接删除。应该先删除目录中的内容,最后才能删除目录。
_遍历目录
-
需求:给定一个路径,请通过递归完成该目录下的所有内容,并把所有文件的绝对路径输出在控制台。
-
思路:
- 根据给定的路径创建一个File对象
- 定义一个方法,用于获取给定目录下的所有内容,参数为第一步创建的File对象
- 获取给的File目录下的所有文件或者目录的File数组
- 遍历该File对象是否是目录
- 是:递归调用
- 否:获取绝对路径输出在控制台
- 调用方法
-
package demo10; import java.io.File; public class FileDemo_03 { public static void main(String[] args) { /* public boolean isDirectory() 测试此类对象路径名表示的File是否为目录 public boolean isFile() 测试此抽象路径名表示的File是否为路径 public boolean exists() 测试此抽象路径名表示的File是否存在 public String getAbsolutePath() 返回此抽象对象路径名的绝对路径名字符串 public String getPath() 将此抽象路径名转换为路径名字符串 public String getName() 返回由此抽象路径名表示的文件或目录名称 public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 public File[] listFile 返回此抽象路径名表示的目录中的文件和目录的File对象数组 需求:给定一个路径,请通过递归完成该目录下的所有内容,并把所有文件的绝对路径输出在控制台。 思路: - 根据给定的路径创建一个File对象 - 定义一个方法,用于获取给定目录下的所有内容,参数为第一步创建的File对象 - 获取给的File目录下的所有文件或者目录的File数组 - 遍历该File对象是否是目录 - 是:递归调用 - 否:获取绝对路径输出在控制台 - 调用方法 */ File f1 = new File("C:\\Users\\Alvord\\Desktop\\markdown学习\\第一月"); getFilePat(f1); } // 定义一个方法,用于获取给定目录下的所有内容,参数为第一步创建的File对象 public static void getFilePat(File filePath) { // public File[] listFile 返回此抽象路径名表示的目录中的文件和目录的File对象数组 File[] arrFile = filePath.listFiles(); if (arrFile != null) { for (File path : arrFile) { // public boolean isDirectory() if (path.isDirectory()) { // 是,则递归调用 getFilePat(path); } else { // public String getAbsolutePath() 返回此抽象对象路径名的绝对路径名字符串 System.out.println(path.getAbsolutePath()); } } } } } ===================================== C:\Users\Alvord\Desktop\markdown学习\第一月\day01.md C:\Users\Alvord\Desktop\markdown学习\第一月\day02.md C:\Users\Alvord\Desktop\markdown学习\第一月\day03.md C:\Users\Alvord\Desktop\markdown学习\第一月\day04.md C:\Users\Alvord\Desktop\markdown学习\第一月\day05.md C:\Users\Alvord\Desktop\markdown学习\第一月\day06.md C:\Users\Alvord\Desktop\markdown学习\第一月\day07.md C:\Users\Alvord\Desktop\markdown学习\第一月\day08.md C:\Users\Alvord\Desktop\markdown学习\第一月\day09.md C:\Users\Alvord\Desktop\markdown学习\第一月\day10.md C:\Users\Alvord\Desktop\markdown学习\第一月\day11.md C:\Users\Alvord\Desktop\markdown学习\第一月\day12.md C:\Users\Alvord\Desktop\markdown学习\第一月\day13.md C:\Users\Alvord\Desktop\markdown学习\第一月\day14.md C:\Users\Alvord\Desktop\markdown学习\第一月\day15.md C:\Users\Alvord\Desktop\markdown学习\第一月\day16.md C:\Users\Alvord\Desktop\markdown学习\第一月\day17.md C:\Users\Alvord\Desktop\markdown学习\第一月\day18.md C:\Users\Alvord\Desktop\markdown学习\第一月\day19.md C:\Users\Alvord\Desktop\markdown学习\第一月\day20.md C:\Users\Alvord\Desktop\markdown学习\第一月\day21.md C:\Users\Alvord\Desktop\markdown学习\第一月\day22.md C:\Users\Alvord\Desktop\markdown学习\第一月\day23.md C:\Users\Alvord\Desktop\markdown学习\第一月\day24.md C:\Users\Alvord\Desktop\markdown学习\第一月\day25.md C:\Users\Alvord\Desktop\markdown学习\第一月\day26.md C:\Users\Alvord\Desktop\markdown学习\第一月\day27.md C:\Users\Alvord\Desktop\markdown学习\第一月\day28.md C:\Users\Alvord\Desktop\markdown学习\第一月\day29.md C:\Users\Alvord\Desktop\markdown学习\第一月\day30.md Process finished with exit code 0