Java I/O:如何向已有的文本文件追加内容

3

你好,我没有问题可以写入或追加文件,唯一的问题是,当我退出程序并再次运行时,它会创建一个新文件覆盖我的原始文件。这是个问题,因为我正在使用文本文件来保持一个累计。

有没有办法将已经创建的文本文件作为对象获取,然后追加到它上面?

提前致谢。

3个回答

7
通常比FileWriter更好的选择是使用FileOutputStream,它也(像FileWriter)在其中一个构造函数中有一个append参数,并且(与FileWriter不同),不会默认假设字符集编码(在我看来这是稍微有点糟糕的做法)。
FileWriter 文档中可以看到:
方便地写入字符文件的类。此类的构造函数假定默认的字符编码和默认的字节缓冲区大小是可接受的。要自行指定这些值,请在FileOutputStream上构建OutputStreamWriter。

1
缺乏一个允许指定编码的FileWriter替代构造函数,使得该类几乎无用。 - Michael Borgwardt

3

FileWriter有一个构造函数允许您通过布尔值设置追加模式。 javadoc


抱歉,我更新了您的链接使其正确工作(SO在空格上出错),并且将其链接到当前的1.6文档而不是1.4.2(通过名称而不是IP)。另外点赞+1。 - T.J. Crowder
@T.J. 谢谢,我看到它出了问题,同时也在尝试修复它。 - Poindexter
没问题。我经常链接到JDK文档,所以我知道这个陷阱(用%20替换空格)。 - T.J. Crowder
谢谢,我不知道第二个参数 - 对这种语言还有点陌生 :) - joepour

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接