java如何把一个文件
读取文件内容
使用java.nio.file.Files类的readAllBytes或readAllLines方法可以快速读取文件内容。readAllBytes适用于二进制文件或需要原始字节的场景,而readAllLines适合文本文件,按行读取为字符串列表。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
// 读取为字节数组
byte[] fileBytes = Files.readAllBytes(Paths.get("path/to/file"));
// 读取为文本行列表
List<String> lines = Files.readAllLines(Paths.get("path/to/file"));
使用缓冲流逐行处理
对于大文件,采用BufferedReader逐行处理能减少内存占用。通过FileReader或Files.newBufferedReader创建缓冲流,结合try-with-resources确保资源自动关闭。
import java.io.BufferedReader;
import java.nio.file.Files;
import java.nio.file.Paths;
try (BufferedReader reader = Files.newBufferedReader(Paths.get("path/to/file"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line); // 处理每一行
}
}
写入文件内容
通过Files.write方法可直接写入字节或文本数据。若需追加内容而非覆盖,指定StandardOpenOption.APPEND选项。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
// 写入字节数据
Files.write(Paths.get("path/to/file"), byteArray);
// 追加文本行
List<String> linesToAppend = List.of("Line 1", "Line 2");
Files.write(Paths.get("path/to/file"), linesToAppend, StandardOpenOption.APPEND);
文件复制与移动
Files.copy和Files.move方法提供文件复制和移动功能。可配置StandardCopyOption控制覆盖行为。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
// 复制文件(覆盖已存在目标)
Files.copy(
Paths.get("source.txt"),
Paths.get("destination.txt"),
StandardCopyOption.REPLACE_EXISTING
);
// 移动文件
Files.move(Paths.get("old.txt"), Paths.get("new.txt"));
检查文件属性
Files类提供便捷方法检查文件是否存在、是否为目录、最后修改时间等元数据。
import java.nio.file.Files;
import java.nio.file.Paths;
boolean exists = Files.exists(Paths.get("path/to/file"));
boolean isDir = Files.isDirectory(Paths.get("path/to/folder"));
long size = Files.size(Paths.get("path/to/file"));
处理临时文件
使用Files.createTempFile生成临时文件,可指定前缀、后缀及目录。临时文件通常在程序结束时删除,但需显式调用deleteOnExit确保清理。

import java.nio.file.Files;
import java.nio.file.Path;
Path tempFile = Files.createTempFile("prefix_", ".tmp");
tempFile.toFile().deleteOnExit(); // 标记为程序退出时删除






