我想做的是替换包含 4000 多行的文件文本中的符号,但使用下面的代码,程序结束后,它只保留 500 行。为什么这个文件会被截断?怎么解决这个问题?
这是我的代码:
ArrayList<String> arrayList = new ArrayList<>();
try (FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
line = line.replace("þ", "t");
arrayList.add(line);
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
for (String string : arrayList) {
bw.write(string + "\n");
}
} catch (Exception e) {System.err.println(e);}
}
} catch (Exception e) {e.printStackTrace();}
提前致谢!
最佳答案
new BufferedWriter(new FileWriter(file))
清除文件。
您应该只打开它一次。您还可以读取和写入同一个文件。您应该使用不同的文件。
像这样
try (FileReader fileReader = new FileReader(inputFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);
BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile))) {
String line;
while ((line = bufferedReader.readLine()) != null) {
line = line.replace("þ", "t");
bw.write(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
关于java - 尝试替换 4000 行文本文件中的符号,结果在 Java 中只有 500 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45060159/