JDK 1.7 引入了 java.nio.file.Files 工具类, 此类仅由对文件、目录或其他类型的文件进行操作的静态方法组成。在大多数情况下,此处定义的方法将委托关联的文件系统提供程序执行文件操作。
Files.exists() 检测文件路径是否存在
Files.createFile() 创建文件
Files.createDirectory() 创建文件夹
Files.delete() 删除一个文件或目录
Files.copy() 复制文件
Files.move() 移动文件
Files.size() 查看文件个数
Files.read() 读取文件
Files.write() 写入文件
演示 Files 对文件进行创建、写入、读取、删除等操作,操作如下:
import java.nio.file.*; import java.nio.file.attribute.FileAttribute; public class Demo { public static void main(String[] args) throws Exception { // 判断文件是否存在 // LinkOption.NOFOLLOW_LINKS 表示不要使用符号链接 Path path = FileSystems.getDefault().getPath("D:\\", "access.log"); boolean exists = Files.exists(path, LinkOption.NOFOLLOW_LINKS); if(!exists) { // 不存在 access.log FileAttribute<?>[] attrs = {}; Path newPath = Files.createFile(path, attrs); System.out.println("创建文件 " + newPath.toAbsolutePath()); } // 向文件写入内容 System.out.println("写入内容到 " + path.toAbsolutePath()); Files.write(path, "www.hxstrive.com".getBytes("UTF-8"), StandardOpenOption.WRITE); // 从文件读取内容 byte[] fileBytes = Files.readAllBytes(path); String content = new String(fileBytes, "UTF-8"); System.out.println("读取文件:" + path.toAbsolutePath()); System.out.println("文件内容:" + content); // 查看文件个数 System.out.println("文件个数:" + Files.size(path)); // 删除文件 Files.delete(path); System.out.println("删除文件:" + path.toAbsolutePath()); } }
运行示例,输出如下:
创建文件 D:\access.log 写入内容到 D:\access.log 读取文件:D:\access.log 文件内容:www.hxstrive.com 文件个数:16 删除文件:D:\access.log