2013-08-08 4 views
1

Мои записи приложений звучат. После записи звука пользователю предлагается ввести новое имя файла. Теперь то, что я пытаюсь сделать дальше, - добавить все имена файлов в текстовый файл, чтобы я мог прочитать его позже как массив для создания списка.Добавление новых строк текста в текстовый файл

Это код:

//this is in onCreate 
File recordedFiles = new File(externalStoragePath + File.separator + "/Android/data/com.whizzappseasyvoicenotepad/recorded files.txt"); 
if(!recordedFiles.exists()) 
    { 
      try { 
       recordedFiles.createNewFile(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
    } 
//this executes everytime text is entered and the button is clicked 
try { 
      String content = input.getText().toString(); 
      FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile()); 
      BufferedWriter bw = new BufferedWriter(fw); 
      bw.write(">" + content + ".mp3"); 
      bw.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

Теперь проблема заключается в том, что каждый раз, когда я записываю новый файл, предыдущая строка переписывается. Поэтому, если я записываю два файла «text1» и «text2», после того, как я записал текст1, txt-файл отобразит текст1, но после того, как я записал текст2, текст2 будет перезаписывать текст1 вместо того, чтобы вставлять новую строку.

Я попытался добавить:

bw.NewLine() 

перед тем

bw.write(">" + content + ".mp3"); 

, но он не работает.

Если я записываю три звука и назвать их SOUND1, SOUND2 и sound3, я хочу, чтобы это было результатом:

>sound1 
>sound2 
>sound3 
+0

Возможный дубликат: http://stackoverflow.com/a/5987040/2500326 – Sw4Tish

ответ

4

Используйте FileWriter конструктор с boolean append аргументом

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile(), true); 
//                ^^^^ 

это позволит файл добавьте текст в конец, вместо этого перезапишите предыдущий контент.

+0

работает как надо, спасибо! – Pizzret

0

Вы можете сделать это путем добавления line.separatorProperty

bw.write(">" + content + ".mp3"); 
bw.write(System.getProperty("line.separator").getBytes()); 
0

FileWriter принимает логическое значение, если это необходимо перезаписать. Поэтому используйте true, если вы хотите добавить файл вместо перезаписи.

0

Заменить

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile()); 

Вместо

FileWriter fw = new FileWriter(recordedFiles.getAbsoluteFile(), true); 
+0

Вы проверили это, это сработало в моем коде –

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