import java.io.*;
public class FileContentReplacer {
public static void main(String[] args) {
// 指定路径下的文件夹路径
String directoryPath = "E:\\java-demo\\business";
// 要查找和替换的字符串
String searchString = "ds_C";
String replacementString = "所念皆星河";
// 调用递归方法替换文件夹中的内容
replaceContentInDirectory(directoryPath, searchString, replacementString);
}
public static void replaceContentInDirectory(String directoryPath, String searchString, String replacementString) {
File directory = new File(directoryPath);
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
// 如果是文件夹,则递归调用
replaceContentInDirectory(file.getAbsolutePath(), searchString, replacementString);
} else {
// 如果是文件,则替换文件内容
replaceContentInFile(file, searchString, replacementString);
}
}
}
}
public static void replaceContentInFile(File file, String searchString, String replacementString) {
try {
// 读取文件内容
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
// 替换文件中的字符串
line = line.replaceAll(searchString, replacementString);
stringBuilder.append(line).append("\n");
}
reader.close();
// 将替换后的内容写回文件
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(stringBuilder.toString());
writer.close();
System.out.println("文件 " + file.getAbsolutePath() + " 中的字符串替换完成。");
} catch (IOException e) {
e.printStackTrace();
}
}
}