替换BufferedWriter.write()中的



我有一个字符串,包含例如"Name: Foo n Date: 12/13/11 n"

当我做BufferedWriter.write(String)到一个文本文件,它实际上输出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

Windows使用CR+LF行结束符而不是LF结束符。您应该能够使用rn来获得您想要的结果。

维基百科有一篇关于换行符的文章。

如果字符串包含文本n而不是字符n,那么您可以执行

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

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

public void test() throws IOException {
    BufferedWriter writer = new BufferedWriter(new FileWriter("/someDir/test.txt"));
    writer.write("HellonWorld");
    writer.close();
}
结果:

Hello 
World

最新更新