2015-05-12 2 views
6

Я хочу, чтобы моя программа сохраняла URL-адреса, по одному за раз, в файл. Эти адреса необходимо сохранить в формате UTF, чтобы убедиться в их правильности.Как добавить к DataOutputStream в Java?

Моя проблема заключается в том, что файл перезаписывается все время, а не добавляется:

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

Этот код не добавляет, так как мне сделать это добавить?

+0

Как инициализируется 'filen'? – Dude

+2

Я проверил ваш код, и я смог добавить его. Может быть, вы могли бы поделиться больше информации о том, как вы его вызываете? –

ответ

0

Проблема оказалась в том, что я забыл, что поставил «filen.delete();» где-нибудь еще.

Вот почему вы (I) должны принимать перерывы во время кодирования: p

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

Надежда, что помогает.

0

Вы можете достичь этого без DataOutputStream. Вот упрощенный пример, используя только FileOutputStream:

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

Это будет просто написать «String» каждый раз, но вы должны получить идею.

Смежные вопросы