从获取文本字段字符串逐行写入或打印到文本文件

writing or printing line by line to a text file from a get text field string

我知道我的问题可能会被重复,但我在其他问题的答案中找不到我需要的答案, 我有一个 textArea,其中附加了一些数据。 我想将该数据写入具有与 textArea 中相同样式的行的文件 我的 textArea 结果如下所示

Type    Model   Serial      Country WTY START   WTY END     SER.STRT    SER.END     Int.Warrnty
1234    123    1234567      XXXXXX  2012-07-04  2015-07-03  2012-07-04  2015-07-03  Yes
5678    456    4567890      XXXXXX  2011-05-11  2014-06-24  ....-..-..  ....-..-..  No

当我尝试将它写入文本文件时,它是这样写的,在是之后,第二行立即被写入。

Type    Model   Serial      Country WTY START   WTY END     SER.STRT    SER.END     Int.Warrnty
1234    123    1234567      XXXXXX  2012-07-04  2015-07-03  2012-07-04  2015-07-03  Yes5678 456    4567890      XXXXXX  2011-05-11  2014-06-24  ....-..-..  ....-..-..  No

我尝试使用打印流和文件写入器并且都给出相同的结果,我也尝试缓冲写入器并添加新行,仍然是同样的问题

我的代码是

String getTextArea_1 = textArea_1.getText();
String userHomeFolder = System.getProperty("user.home");
File file = new File(userHomeFolder, "RESULT_3.txt");
try {
    FileWriter fw = new FileWriter(file);
    fw.append(getTextArea_1);
    fw.flush();
    fw.close();
} catch (IOException e1) {
    e1.printStackTrace();
}

感谢您的帮助

你需要在第一次追加之后追加一个\n,否则你会写在同一行

将您的 try-catch 更改为如下内容:

try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
    String[] strings = getTextArea_1.split("\n");
    for (String s : strings){
        writer.write(s);
        writer.newLine();        
    }
} catch (IOException e) {
    e.printStackTrace();
}