我依次使用两个 FileWriter
。
第一个不追加
BufferedWriter versionWriter = new BufferedWriter(new FileWriter(new File(filePath)));
versionWriter.write(s);
versionWriter.close();
而我想附加后面的一个。
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(filePath), true));
bw.newLine();
bw.write(s);
问题是我的第一个 FileWriter
破坏了整个文件,因此使我丢失了数据。
我使用两个 FileWriter
的原因是第一个应该覆盖文本文件的第一行,而第二个应该附加到文件末尾。
正确的做法是什么?
编辑: 我意识到可以先读取所有内容,然后将其保存回来,但这是非常低效的,特别是因为我需要在文件中存储大量数据。
最佳答案
使用 RandomAccessFile.seek(...) 将数据写入文件的特定位置。
但是,除了读入内存、替换第一行并再次写入文件之外,“替换文件的第一行”并没有什么魔力。除非那条线总是具有相同的长度。并且注意不要覆盖 EOL 字符。 :-)
顺便说一句,不要忘记在关闭之前调用flush()。
关于java - 使用两个 FileWriter,其中一个追加,另一个不追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598148/