Получение java .io. FileWriter@xxxxxxxx в конце текстового файла - PullRequest
0 голосов
/ 08 мая 2020

При записи в файл из jTextArea я всегда получаю java .io. FileWriter@xxxxxxxx в конце, а xxxxxxxx - случайное шестнадцатеричное значение.

Как мне удалить пожалуйста?

Вот мой код:

try (FileWriter fstream = new FileWriter("./output.txt");        
        BufferedWriter output= new BufferedWriter(fstream);){
            Writer info = fstream.append(jTextArea.getText());
            output.write("" + info);
}catch (IOException e){
       e.printStackTrace();
}


Thank you

1 Ответ

0 голосов
/ 08 мая 2020
        Writer info = fstream.append(jTextArea.getText());
        output.write("" + info);  // <------ this is what is wrong

Возвращаемое значение append - просто this. Этот стиль API называется fluent и предназначен для использования такого кода:

  writer.append("a").append("b").append("c");

Эту последнюю строку вы можете просто удалить. Вот что он делает:

  output.write(info.toString());

FileWriter.toString () использует реализацию по умолчанию, которая просто выводит имя класса объекта и идентификационный хэш-код этого объекта.

append уже записывает в Writer.

При этом, если у вас есть BufferedWriter, используйте его напрямую вместо FileWriter. Только не забудьте после этого закрыть писателей.

...