2013-07-15 8 views
1

Мои данные хранятся в массиве ArrayList, размер которого увеличивается во время выполнения программы. Мне удалось сохранить все данные всякий раз, когда размер увеличивается, но это позволяет мне перезаписать уже сохраненные данные. Решение состоит в том, чтобы перейти непосредственно к нижней строке и вставить содержимое последней ячейки ArrayList. К сожалению, я не знаю, как его реализовать. Спасибо, что помогли мне сделать это.Как добавить строку в текстовый файл без перезаписи (JAVA)?

Ниже приведен метод, который я использовал.

private void SaveLocationData(){ 
    try { 

     FileOutputStream output = openFileOutput("latlngpoints.txt",Context.MODE_PRIVATE); 
     DataOutputStream dout = new DataOutputStream(output);      
     dout.writeInt(LocationList.size()); 
     for (Location location : LocationList) { 
      dout.writeUTF(location.getLatitude() + "," + location.getLongitude());    
     } 
     dout.flush(); // Flush stream ... 
     dout.close(); // ... and close. 
    } catch (IOException exc) { 
     exc.printStackTrace(); 
    } 
} 

ответ

2

Использование MODE_APPEND:

FileOutputStream output = openFileOutput("latlngpoints.txt",Context.MODE_APPEND); 

Из doc: данные для использования с openFileOutput (String, Int), если файл уже существует, то пишут:

режим создания файла до конца существующего файла вместо его стирания.

+0

Спасибо. Это было полезно –

+0

приветствуются – Blackbelt

0

Вы можете попробовать это слишком

 FileWriter fstream = new FileWriter("x.txt",true); //this will allow to append 
     BufferedWriter fbw = new BufferedWriter(fstream); 
     fbw.write("append txt..."); 
     fbw.newLine(); 
     fbw.close(); 
Смежные вопросы