- 理解文件
什么是文件: 文件其实就是在 Windows 操作的时候, 经常创建使用的.txt, .exe, .mp3 等, 这些都可以称之为文件
文件可以简单地理解为: 在外设硬盘上保存数据的一种方式
文件可以由两部分构成: 属性(文件大小、文件名、文件类型等) + 内容
- File 文件操作类
File 类的包名是 java.io, 其实现了 Serilizable, Comparable 两大接口以便于其对象的可序化和比较
2.1 构造方法
2.2 File 类常用方法 - 基本文件操作
在 Windows 下路径分隔符使用的是 \ , 而在 Linux/Unix 下使用的是 / . 所以在使用分隔符的时候会采用 File 类的一个常量 \ : public static final String separator
来描述
System.out.println(File.separator);
可以打印出当前系统下的分隔符(\ 或者 /)
2.3 File 类常用方法 - 目录操作
2.4 File 类常用方法 - 文件属性操作
2.5 绝对路径和相对路径
绝对路径: 是指目录下的绝对路径, 直接到达目标位置, 通常是从盘符开始的路径. 完整的描述文件所在的位置.
相对路径: 相对于某个目录的路径. (./ 或者 . 表示当前目录) (··/ 表示上级目录) 使用相对路径创建文件的时候, 此时生成的文件就在当前目录下.
// 全路径
File file = new File("F:\\learnJavaWeb\\io-study\\data\\呵呵.txt");
System.out.println(file.exists()); // 判断文件是否存在
// 相对路径
File file1 = new File("../data/呵呵.txt");
System.out.println(file1.exists());
// 查看当前 Java 代码的的路径(当前目录)
File file2 = new File(".");
System.out.println(file2.getAbsolutePath()); // 获取绝对路径
File file3 = new File("data/呵呵.txt"); // File 类写相对路径的方式不建议在真实的项目中使用
System.out.println(file3.exists()); // exists() 文件是否存在
System.out.println(file3.getPath()); // 获取路径
System.out.println(file3.lastModified()); // 获取上次修改时间
2.6 File 类常用方法 - 其他操作
File file4 = new File("F:\\learnJavaWeb");
File[] children = file4.listFiles(); // 返回目录下一级的子文件和子文件夹数组
for (File child : children) {
System.out.println(child.getName()); // 获取文件名
}
案例: 递归获取目录下的所有子文件和子文件夹
public static List<File> list(File file) {
List<File> files = new ArrayList<>();
if (file.isFile()) {
files.add(file);
} else {
File[] children = file.listFiles(); // 下一级子文件和子文件夹
for (File child : children) {
List<File> ret = list(child);
files.addAll(ret);
}
}
return files;
}
@Test
public void t3() {
File file4 = new File("F:\\learnJavaWeb");
List<File> children = list(file4);
for (File child : children) {
System.out.println(child.getName()); // 获取文件名
}
}