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. Только не забудьте после этого закрыть писателей.