java - 使用两个 FileWriter,其中一个追加,另一个不追加

标签 java filewriter

我依次使用两个 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/

相关文章:

java - 删除 ArrayList 中的重复元素并在第一个元素后的括号中添加出现的总数

java - 用 Java 将输入流写入文件

javascript - 哪个ArrayBufferView

java - 无法在android中写入文件

java - Spring JPA Data Repository 通用实现示例

java - 强制 JUnit 子类测试覆盖 @BeforeClass 方法

java - 我怎样才能专注于谷歌地图的某个部分

Java:将 JFrame 焦点转移到另一个 JFrame

java - 将 ArrayList 的内容写入文本文件

java - 有什么方法可以知道 FileReader 指向的文件吗?