【问题标题】:How to append to DataOutputStream in Java?如何附加到 Java 中的 DataOutputStream?
【发布时间】:2015-07-23 11:36:00
【问题描述】:

我希望我的程序一次一个地将 URL 地址保存到文件中。 这些地址需要以 UTF 格式保存,以确保它们是正确的。

我的问题是文件一直被覆盖,而不是附加:

    DataOutputStream DOS = new DataOutputStream(new FileOutputStream(filen, true));
    Count = 0;
    if (LinkToCheck != null) {
    System.out.println(System.currentTimeMillis() + " SaveURL_ToRelatedURLS d "+LinkToCheck.Get_SelfRelationValue()+" vs "+Class_Controller.InterestBorder);
    if (LinkToCheck.Get_SelfRelationValue() > Class_Controller.InterestBorder) {
        DOS.writeUTF(LinkToCheck.Get_URL().toString() + "\n");
        Count++;
    }
    }
    DOS.close();

此代码不附加,那么如何使其附加?

【问题讨论】:

  • filen是如何初始化的?
  • 我测试了您的代码并且能够追加。也许您可以分享有关如何调用它的更多信息?

标签: java append dataoutputstream


【解决方案1】:

您实际上不应该在每次迭代时保持流打开并写入。为什么不简单地创建一个包含所有信息的字符串并将其写在最后呢?

例子:

DataOutputStream DOS = new DataOutputStream(new FileOutputStream(filen, true));
int count = 0; // variables should be camelcase btw
StringBuilder resultBuilder = new StringBuilder();
if (LinkToCheck != null) {
    System.out.println(System.currentTimeMillis() + "SaveURL_ToRelatedURLS d "+LinkToCheck.Get_SelfRelationValue()+" vs "+Class_Controller.InterestBorder);

    if (LinkToCheck.Get_SelfRelationValue() > Class_Controller.InterestBorder) {
        resultBuilder.append(LinkToCheck.Get_URL().toString()).append("\n");
        count++;
    }
}
DOS.writeUTF(resultBuilder.toString());
DOS.close();

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    您可以在没有 DataOutputStream 的情况下实现此目的。 这是一个仅使用 FileOutputStream 的简化示例:

    String filen = "C:/testfile.txt";
    FileOutputStream FOS = new FileOutputStream(filen , true);
    FOS.write(("String" + "\r\n").getBytes("UTF-8"));
    FOS.close();
    

    这只会每次都写“String”,但你应该明白了。

    【讨论】:

      【解决方案3】:

      问题原来是我忘记放了“filen.delete();”别的地方。

      这就是为什么你(我)在编码时应该休息一下:p

      【讨论】:

        猜你喜欢
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2014-12-11
        • 1970-01-01
        • 2021-07-11
        • 1970-01-01
        相关资源
        最近更新 更多