/**
* 指定路径文件 从 flagStr 按行添加 writeContent
* @param writeContent
* @param path
* @param flagStr
* @throws IOException
* @throws URISyntaxException
*/
public static void write2File(List<String> writeContent, String path, String flagStr) throws IOException, URISyntaxException {
// 创建临时文件
File outFile = File.createTempFile("fileTmp", ".tmp");
// 源文件
File testFile = new File(path);
// 源文件输入流
FileInputStream fis = new FileInputStream(testFile);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
// 源文件输出流
FileOutputStream fos = new FileOutputStream(outFile);
PrintWriter out = new PrintWriter(fos);
// 保存一行数据
String thisLine;
// jvm 退出 临时文件删除
outFile.deleteOnExit();
while ((thisLine = in.readLine()) != null) {
// 当读取到目标行时 写入需要写入的内容
if (thisLine.equals(flagStr)) {
writeContent.forEach(s-> {
out.println(s);
});
}
// 输出读取到的数据
out.println(thisLine);
}
// 各种关
out.flush();
out.close();
in.close();
// 删除原始文件
testFile.delete();
// 把临时文件改名为原文件名
outFile.renameTo(testFile);
}
Java---文件指定行添加内容
最新推荐文章于 2024-08-26 03:17:47 发布
该代码段实现了一个功能,即在指定文件的特定行(由flagStr标识)之后插入列表writeContent中的内容。首先创建临时文件,然后逐行读取源文件,当遇到flagStr时,将writeContent写入,最后将临时文件重命名为源文件,替换原有内容。此方法在不丢失原始文件数据的情况下实现了内容的动态插入。
摘要由CSDN通过智能技术生成