Как сохранить строку в текстовом файле с помощью Java? - PullRequest
639 голосов
/ 27 июня 2009

В Java у меня есть текст из текстового поля в строковой переменной с именем «text».

Как сохранить содержимое переменной text в файл?

Ответы [ 23 ]

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

Если вы хотите сохранить символы возврата каретки из строки в файл Вот пример кода:

    jLabel1 = new JLabel("Enter SQL Statements or SQL Commands:");
    orderButton = new JButton("Execute");
    textArea = new JTextArea();
    ...


    // String captured from JTextArea()
    orderButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            // When Execute button is pressed
            String tempQuery = textArea.getText();
            tempQuery = tempQuery.replaceAll("\n", "\r\n");
            try (PrintStream out = new PrintStream(new FileOutputStream("C:/Temp/tempQuery.sql"))) {
                out.print(tempQuery);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(tempQuery);
        }

    });
0 голосов
/ 05 февраля 2018

Я думаю, что лучше всего использовать Files.write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options):

String text = "content";
Path path = Paths.get("path", "to", "file");
Files.write(path, Arrays.asList(text));

См. Javadoc :

Запись строк текста в файл. Каждая строка представляет собой последовательность символов и является записывается в файл последовательно, каждая строка заканчивается разделитель строки платформы, как определено системным свойством line.separator. Символы кодируются в байты с использованием указанного набор символов.

Параметр options указывает, как файл создается или открывается. Если нет никаких вариантов, то этот метод работает, как будто CREATE, Параметры TRUNCATE_EXISTING и WRITE присутствуют. Другими словами, это открывает файл для записи, создания файла, если он не существует, или изначально обрезать существующий обычный файл до размера 0. Метод гарантирует, что файл закрыт, когда все строки были записано (или возникла ошибка ввода-вывода или другое исключение во время выполнения). Если Возникает ошибка ввода / вывода, которая может возникнуть после создания файла или усечено, или после того, как некоторые байты были записаны в файл.

Пожалуйста, обратите внимание. Я вижу, что люди уже ответили с помощью встроенного в Java Files.write, но что особенного в моем ответе, который, кажется, никто не упоминает, так это перегруженная версия метода, которая принимает Iterable из CharSequence (то есть String) вместо byte[] массив, поэтому text.getBytes() не требуется, что немного чище, я думаю.

0 голосов
/ 01 декабря 2014

Вы можете использовать ArrayList, чтобы поместить все содержимое TextArea в качестве примера, и отправить в качестве параметра, вызвав save, так как писатель только что записал строковые строки, тогда мы будем использовать строку «for» построчно, чтобы написать наш ArrayList в конце мы будем содержимое TextArea в текстовом файле. если что-то не имеет смысла, извините, это переводчик Google и я, кто не говорит по-английски.

Посмотрите Блокнот Windows, он не всегда перебивает строки и показывает все в одной строке, используйте Wordpad нормально.


private void SaveActionPerformed (java.awt.event.ActionEvent evt) {

String NameFile = Name.getText();
ArrayList< String > Text = new ArrayList< String >();

Text.add(TextArea.getText());

SaveFile(NameFile, Text);

}


public void SaveFile (имя строки, сообщение ArrayList ) {

path = "C:\\Users\\Paulo Brito\\Desktop\\" + name + ".txt";

File file1 = new File(path);

try {

    if (!file1.exists()) {

        file1.createNewFile();
    }


    File[] files = file1.listFiles();


    FileWriter fw = new FileWriter(file1, true);

    BufferedWriter bw = new BufferedWriter(fw);

    for (int i = 0; i < message.size(); i++) {

        bw.write(message.get(i));
        bw.newLine();
    }

    bw.close();
    fw.close();

    FileReader fr = new FileReader(file1);

    BufferedReader br = new BufferedReader(fr);

    fw = new FileWriter(file1, true);

    bw = new BufferedWriter(fw);

    while (br.ready()) {

        String line = br.readLine();

        System.out.println(line);

        bw.write(line);
        bw.newLine();

    }
    br.close();
    fr.close();

} catch (IOException ex) {
    ex.printStackTrace();
    JOptionPane.showMessageDialog(null, "Error in" + ex);        

}

...