递归读取文件,并且替换文件内容
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileTxtUpdater {
public static void main(String[] args) {
String oldTxt = "123";
String newTxt = "456";
String rootDirectory = "D:\\新建文件夹";
try {
Files.walk(Paths.get(rootDirectory))
.filter(Files::isRegularFile)
.forEach(path -> updateFile(path, oldTxt, newTxt));
System.out.println("替换完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void updateFile(Path filePath, String oldTxt, String newTxt) {
try {
String content = new String(Files.readAllBytes(filePath), StandardCharsets.UTF_8);
content = content.replaceAll(oldTxt, newTxt);
Files.write(filePath, content.getBytes(StandardCharsets.UTF_8));
System.out.println("已替换文件:" + filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
运行结果
已替换文件:D:\新建文件夹\新建 文本文档.txt
替换完成!