Files工具类
在NIO.2中,针对于文件操作除了前面小节讲解的Paths工具类和Path接口外,还有一个Files工具类,该类是一个操作文件的工具类,其中包含了大量的方法,如表1所示。
表1 Files工具类中的常用方法
方法声明 | 功能描述 |
---|---|
static Path createDirectories(Path dir, FileAttribute<?>... attrs) | 创建多级文件目录 |
static Path createFile(Path path, FileAttribute<?>... attrs) | 创建一个新的空文件,如果文件已经存在,则创建失败 |
static Path copy(Path source, Path target,CopyOption... options) | 该方法将一个文件复制到目标文件,并使用选项参数指定如何执行复制 |
static List<String> readAllLines(Path path) | 从文件中读取所有行 |
static long size(Path path) | 返回文件的大小(以字节为单位) |
static Stream<Path> list(Path dir) | 将指定路径转换为Stream流对象 |
static Path write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options) | 将文本行写入文件,并传入指定的写入模式 |
了解了Files工具类的常用方法及其功能后,接下来通过一个具体的案例来演示Files类中的一些常用方法的使用,如文件1所示。
文件1 Example21.java
1 import java.io.*;
2 import java.nio.file.*;
3 import java.util.*;
4 public class Example21 {
5 public static void main(String[] args) throws IOException {
6 // 定义一个目录路径的Path对象
7 Path directoryPath = Paths.get("D:/test/sample");
8 // 根据Path对象创建多级目录
9 Files.createDirectories(directoryPath);
10 System.out.println("目录创建成功!");
11 // 定义一个文件路径的Path对象
12 Path filePath = Paths.get("D:/test/sample/test.txt");
13 // 根据Path对象创建一个文件
14 Files.createFile(filePath);
15 // 创建一个List集合,并向集合中添加内容
16 List<String> list = new ArrayList<String>();
17 list.add("这是一个测试文件");
18 // 将集合中的内容追加写入到指定的文件中
19 Files.write(filePath, list, StandardOpenOption.APPEND);
20 List<String> lines = Files.readAllLines(filePath);
21 System.out.println("文件的大小为:" + Files.size(filePath));
22 System.out.println("文件中的内容为:" + lines);
23 }
24 }
运行结果如图1所示。
图1 运行结果
文件1中,简单的演示了Files工具类的一些用法,包括文件的创建、写入、读取等功能。除上述代码中的方法外,Files类中还有很多实用的方法,由于篇幅有限,这里就不再赘述。关于Files类中更多方法的使用,读者可查找官方文档来学习。