簡體   English   中英

如何在Java中附加到DataOutputStream?

[英]How to append to DataOutputStream in Java?

我希望我的程序將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();

此代碼不會附加,所以我該如何追加它?

實際上,您不應該保持流打開並在每次迭代時寫入。 為什么不簡單地創建一個包含所有信息的字符串並在最后寫出來?

例:

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();

希望有所幫助。

您可以在沒有DataOutputStream的情況下實現此目的。 這是一個僅使用FileOutputStream的簡化示例:

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

這只是每次都寫“字符串”,但你應該明白這一點。

問題結果是我忘記了我把“filen.delete();” 別的地方。

這就是為什么你(我)應該在編碼時休息:p

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM