Сохранение текста jTextPane не работает должным образом

Я пытаюсь сохранить «историю», которую я создаю после того, как вы отправили команду из строки, поэтому каждый раз, когда вы нажимаете Enter, команды переходят в jTextPane с разделителем строк... Однако, когда я сохраняю файл, он не кажется, не получить разделитель строк. Например, мой jTextPane имеет что-то вроде:

Create database user
use database user
show tables from database

Вместо того, чтобы сохранять рабочее пространство просто так, это дает мне это:

Создать базу данных, использовать пользователей базы данных, показать таблицы из базы данных.

Что я должен делать? Вот мой код

String ar;
    String TEXTO = jTextPane1.getText() + System.lineSeparator();
    FileFilter ft = new FileNameExtensionFilter("Text Files", ".txt");
    FC.setFileFilter(ft);
    int returnVal = FC.showSaveDialog(this);

    if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {

        java.io.File saved_file = FC.getSelectedFile();
        String file_name = saved_file.toString();
        File archivo;
        ar = "" + file_name + ".txt";

        archivo = new File(ar);
        try {
            if (saved_file != null) {
                try (FileWriter GUARDADO = new FileWriter(ar)) {
                    GUARDADO.write(TEXTO);
                }
            }
        } catch (IOException exp) {
            System.out.println(exp);
        }
    }

person A. Zambrano    schedule 15.04.2016    source источник
comment
Кстати. System.lineSeparator() - это то, что я пробовал, но это не сработает, так как он помещает строку после того, как читает все из TextPane.   -  person A. Zambrano    schedule 16.04.2016


Ответы (2)


Вам нужно использовать:

jTextPane1.getDocument().getText(0,jTextPane1.getDocument().getLength());
person rushabhshah1693    schedule 16.04.2016
comment
Это может быть решением, но все же... Не пишет все так, как я хочу, потому что он по-прежнему создает только одну строку с каждым найденным словом вместо того, чтобы указывать разделитель строк. - person A. Zambrano; 16.04.2016
comment
Я попытался использовать образец ввода, который вы дали, и, похоже, он работает нормально. Пожалуйста, объясните, если что-то еще я не понимаю. - person rushabhshah1693; 16.04.2016

Проблема в том, что вам нужно использовать /n вместо System.lineSeparator. Поведение JTextPane не зависит от System.

person Sharcoux    schedule 16.04.2016