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

时间:2016-08-09 15:45:26

标签: java line file-writing

我理解我的问题可能会重复,但我无法在其他问题的答案中找到我需要的答案, 我有一个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();
}

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您需要在第一次追加后附加\ n,否则您将在同一行上写

答案 1 :(得分:1)

将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();
}