【发布时间】:2016-02-03 23:59:27
【问题描述】:
我的程序接受一个文本文件的输入,其中每个单词由换行符分隔,我的程序接受它并处理数据,然后我需要在保持控制台输出的同时输出到一个新文件。
现在我想知道为什么当我将“\n”附加到我的 stringBuilder 时,它会像在控制台中有一个新行一样将其打印出来,但在文件输出中,它不会将其视为新行行,然后将所有单词放在一行中。
当我使用 newLine 时,它只会在我的控制台输出和输出文件中给出一个新行。这是为什么? (String)System.getProperty("line.separator") 是怎么做的?
String newLine = (String)System.getProperty("line.separator");
try{
BufferedReader fileIn = new BufferedReader(new FileReader(fileName));
stringBuilder.append(newLine);
while((s = fileIn.readLine()) != null){
stringBuilder.append(s);
stringBuilder.append(newLine);//using newLine,
}
String a = stringBuilder.toString();
if(s== null){
fileIn.close();
}
【问题讨论】:
-
因为在某些系统上(想想 OSX 或 Windows),
\n不是行分隔符? -
你应该使用
System.lineSeparator(),并且不需要将结果转换为String
标签: java string io system stringbuilder