所以我的代码看起来像这样:
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>
答案 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"));
基本相同。
因此,为了添加换行符,你必须这样做。
但是,为了改进您的代码,我有两个建议:
FileWriter
。在循环外创建它并在循环后关闭它。FileWriter
,而应使用PrintWriter
FileWriter
。然后,您获得与println()
相同的System.out
方法。答案 2 :(得分:0)
只是做
fw.write("\n");
将为新行添加转义字符
答案 3 :(得分:0)
您可以使用 System.getProperty(&#34; line.separator&#34;)也 System.lineSeparator()