【问题标题】:Java I/O: How to append to an already existing text fileJava I/O:如何追加到已经存在的文本文件
【发布时间】:2011-02-13 20:54:53
【问题描述】:

您好,我在写入或附加到文件时没有问题,唯一的问题是,一旦我退出程序然后再次运行它,它会创建一个覆盖我原始文件的新文件。这是一个问题,因为我正在使用文本文件来保持运行记录。

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

提前致谢。

【问题讨论】:

    标签: java io append filewriter


    【解决方案1】:

    通常,比 FileWriter(已经建议)更好的是使用 FileOutputStream,它(如 FileWriter)在其构造函数之一中有一个 append 参数,并且(不像FileWriter),不会默认采用默认字符集编码(IMO 的做法有点不好)。

    来自FileWriter 文档:

    写作便利班 字符文件。的构造函数 这个类假设默认 字符编码和默认 字节缓冲区大小是可以接受的。到 自己指定这些值, 在 a 上构造一个 OutputStreamWriter 文件输出流。

    【讨论】:

    • +1:FileWriter 缺少允许指定编码的替代构造函数,这使得该类几乎无用。
    【解决方案2】:

    FileWriter 有一个构造函数,它允许您使用布尔值设置附加。 javadoc

    【讨论】:

    • 抱歉,我更新了您的链接,使其正常工作(因此在空间上中断),并且它链接到当前的 1.6 文档而不是 1.4.2(并且通过名称而不是 IP)。 +1,顺便说一句
    • @T.J.谢谢,我看到它坏了,并试图同时修复它。
    • 不用担心。我经常链接到 JDK 文档,所以我知道陷阱(用 %20 替换空格)。
    • 谢谢你,我不知道第二个参数 - 这门语言有点新:)
    【解决方案3】:

    看看java.io.FileWriter。将 append 设置为 true 应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 2013-09-22
      • 2017-02-27
      • 1970-01-01
      相关资源
      最近更新 更多