替换BufferedWriter.write()中的\ n?

时间:2011-12-13 18:55:53

标签: java text-files bufferedreader

我有一个字符串,其中包含例如“姓名:Foo \ n日期:12/13/11 \ n”

当我对文本文件执行BufferedWriter.write(String)时,它实际上会输出\ n无论如何要在\ n上替换\ n,以便在写入文本文件时表示换行符?

以下是示例代码。

String input = "Name: adfasd \n AN: asdfasdf \n";
Writer textOutput = null;
File file = new File("write.txt");  
textOutput = new BufferedWriter(new FileWriter(file));
textOutput.write( input );
textOutput.close();

输出为

http://img7.imageshack.us/img7/7694/exampleve.png

3 个答案:

答案 0 :(得分:2)

Windows使用CR + LF行结尾而不是LF结尾。您应该可以使用\r\n来获得所需的结果。

维基百科有一篇关于newlines的文章,如果你想了解更多。

答案 1 :(得分:1)

如果字符串包含文本\ n而不是字符\ n,则可以执行

String text = "Line 1 \\n Line2";
System.out.println(text);
System.out.println(text.replace("\\n", "\n"));

答案 2 :(得分:1)

这很奇怪,我刚刚测试了下面的代码,结果文件在两行显示消息:

public void test() throws IOException {
    BufferedWriter writer = new BufferedWriter(new FileWriter("/someDir/test.txt"));
    writer.write("Hello\nWorld");
    writer.close();
}

结果:

Hello 
World