写入文件时插入换行符?

时间:2013-07-18 06:33:55

标签: java file-io

所以我的代码看起来像这样:

try {
    while ((line = br.readLine()) != null) {
        Matcher m = urlPattern.matcher (line);
        while (m.find()) {
            System.out.println(m.group(1));

            //the println puts linebreak after each find

            String filename= "page.txt";
            FileWriter fw = new FileWriter(filename,true);
            fw.write(m.group(1));
            fw.close();

            //the fw writes everything after each find with no line break
    }
}

我在第System.out.println(m.group(1));行得到了正确的输出形式但是当我稍后想写m.group(1)所显示的内容时,它写入文件而不放置换行符,因为代码没有。< / p>

4 个答案:

答案 0 :(得分:24)

只需致电fw.write(System.getProperty("line.separator"));

System.getProperty("line.separator")将为您的平台提供行分隔符(无论是Windows还是某些Unix风格)。

答案 1 :(得分:1)

println(text)将换行符添加到字符串中,与print(text); print(System.getProperty("line.separator"));基本相同。

因此,为了添加换行符,你必须这样做。

但是,为了改进您的代码,我有两个建议:

  1. 不要在循环中创建新的FileWriter。在循环外创建它并在循环后关闭它。
  2. 请勿使用FileWriter,而应使用PrintWriter FileWriter。然后,您获得与println()相同的System.out方法。

答案 2 :(得分:0)

只是做

fw.write("\n");

将为新行添加转义字符

答案 3 :(得分:0)

您可以使用 System.getProperty(&#34; line.separator&#34;) System.lineSeparator()