BufferedWriter write () не работает - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь записывать и записывать файлы с помощью следующего фрагмента кода.Однако файл создан, но в нем ничего не написано.Я уже проверил структуру линий, и это нормально.

try{
    File file = new File("../received/"+nameFiles.get(op-1));
    BufferedWriter bw = new BufferedWriter( new FileWriter( file, true ) );
    for(String index : lines){
        bw.write(index);
        System.out.println(index);
    }
    System.out.println("Arquivo criado");
}catch(IOException ex){
    ex.printStackTrace();
}

1 Ответ

0 голосов
/ 01 июня 2018

В вашем коде есть некоторые недостатки:

  1. Вы никогда не сбрасываете BufferedWriter
  2. Вы также никогда не закрываете его

Следующий код должен решить вашу проблему:

final File file = new File("../received/"+nameFiles.get(op-1));
try(BufferedWriter bw = new BufferedWriter(new FileWriter(file, true) )){
    for(String index : lines){
        bw.write(index);
        System.out.println(index);
    }
    System.out.println("Arquivo criado");
} catch(IOException ex){
    ex.printStackTrace();
}

Попытка с ресурсами вызывает метод AutoCloseable#close() после того, как он покидает блок try-catch.И всякий раз, когда close() называется.BufferedWriter также вызывает flush(), который наконец записывает в ваш файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...