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