2014-01-18 9 views
2

У меня есть этот код:Почему BufferedWriter не записывается в файл?

String[] strings = {"Hi" , "You", "He", "They", "Tetrabenzene", "Caaorine", "Calorine"}; 

    File file = new File("G:\\words.txt"); 
    FileWriter fWriter; 
    BufferedWriter bWriter; 

    try { 
     if((file.exists())) { 
      file.createNewFile(); 
     } 
     fWriter = new FileWriter(file.getAbsoluteFile(), true); 
     bWriter = new BufferedWriter(fWriter); 

     //Convert Result objects to JSON and write to file 
     for(int j = 0; j < strings.length; ++j) { 
      bWriter.write(strings[j]); 
       bWriter.newLine(); 
       System.out.println("done"); 
     } 
    } 
    catch(IOException e) {e.printStackTrace();} 

Я довольно много и тот же код 2 или 3 раза до этого и BufferedWriter пишет отлично. Но по какой-то причине, когда я добираюсь до этого кода, он не пишет. Я искал вещи, которые могут быть неправильными, но я не могу что-то изменить и быстро протестировать, так как программа занимает 10 минут, чтобы добраться до этой части.

Кроме того, программа печатает «сделано» на консоли, поэтому я знаю, что она идет в for loop.

Любые идеи относительно того, что я делаю неправильно?

+1

Закройте своих писателей в конце. 'bWriter.close(); fWriter.close(); ' –

+0

Спасибо. Это помогло. – user3210944

ответ

7

Звоните bWriter.flush(), когда вы хотите, чтобы ваши данные действительно были сброшены в ваш файл на диске. Или просто позвоните bWriter.close(), когда вы закончите работу со своим автором. Звонок bWriter.close() вызовет bWriter.flush() внутренне.

+0

OP должен использовать 'try-with-resources', если он доступен (Java 7). –

+0

Спасибо. Это исправило мою проблему. – user3210944

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