一、Path、Paths 和 File、Files
// Paths 工具类,用于获取 Path 实例 Path path = Paths.get("files/Data.txt"); // 相对路径 Path path2 = Paths.get("D:\\files/Data.txt"); // 绝对路径 Path path3 = Paths.get("D:/files/Data.txt"); // 绝对路径 Path path4 = Paths.get("D:/files", "Data.txt"); // 绝对路径 System.out.println(path); // 打印结果:files\Data.txt System.out.println(path2); // 打印结果:D:\files\Data.txt System.out.println(path3); // 打印结果:D:\files\Data.txt System.out.println(path4); // 打印结果:D:\files\Data.txt // 路径正常化 Path path5 = Paths.get("D:/files/../files2/file2.txt"); // 绝对路径 System.out.println(path5); // 打印结果:D:\files\..\files2\file2.txt System.out.println(path5.normalize()); // 打印结果:D:\files2\file2.txt // Flies boolean exists = Files.exists(path5); // 判断文件是否存在,存在返回true,反之返回false System.out.println(exists); // false try { /* 创建一级目录 如果存在,则抛出异常:FileAlreadyExistsException 无法创建多级目录,如果目录不存在,则会抛出异常:NoSuchFileException */ Files.createDirectory(path5); // 创建多级目录 Files.createDirectories(path5); // copy 文件,如果文件存在则会抛出异常:FileAlreadyExistsException Files.copy(path, path5); // 如果希望覆盖掉已存在的文件,需要使用 StandardCopyOption.REPLACE_EXISTING Files.copy(path, path5, StandardCopyOption.REPLACE_EXISTING); // 移动文件,StandardCopyOption.ATOMIC_MOVE 保证移动文件的原子性 Files.move(path, path5, StandardCopyOption.ATOMIC_MOVE); /* 1. 删除文件,如果文件不存在,则会抛出异常:NoSuchFileException 2. 删除目录,如果目录不存在,则会抛出异常:DirectoryNotEmptyException */ Files.delete(path2); } catch (IOException e) { e.printStackTrace(); }
二、文件遍历