public class ReplaceFile {
/***
* 替换指定文件中的指定内容
* @param filepath 文件路径
* @param sourceStr 文件需要替换的内容
* @param targetStr 替换后的内容
* @return 替换成功返回true,否则返回false
*/
public static boolean replaceFileStr(String filepath,String sourceStr,String targetStr){
try {
FileReader fis = new FileReader(filepath); // 创建文件输入流
BufferedReader br = new BufferedReader(fis);
char[] data = new char[1024]; // 创建缓冲字符数组
int rn = 0;
StringBuilder sb=new StringBuilder(); // 创建字符串构建器
//fis.read(data):将字符读入数组。在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。读取的字符数,如果已到达流的末尾,则返回 -1
while ((rn = fis.read(data)) > 0) { // 读取文件内容到字符串构建器
String str=String.valueOf(data,0,rn);//把数组转换成字符串
System.out.println(str);
sb.append(str);
}
fis.close();// 关闭输入流
// 从构建器中生成字符串,并替换搜索文本
String str = sb.toString().replace(sourceStr, targetStr);
FileWriter fout = new FileWriter(filepath);// 创建文件输出流
fout.write(str.toCharArray());// 把替换完成的字符串写入文件内
fout.close();// 关闭输出流
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
}
调用方法:
ReplaceFile.replaceFileStr("E:\\ttt.txt", "是", "好好好");