从以下代码:
import java.io.*;
class fileTester {
public static void main( String args[]) throws IOException {
String string = "Suhail" + "\n" + "gupta";
FileOutputStream fos = new FileOutputStream( new File("break.txt"));
byte[] data = string.getBytes();
fos.write( data );
fos.close();
}
}
我希望输出为:
Suhail
古普塔
在创建的文件中(即新行中的两个字符串),但输出在一行中。 Suhail gupta
为什么当我在2个字符串之间使用\n
字符时呢?
答案 0 :(得分:3)
写入文件时,不应对新行字符进行硬编码。改为使用特定于操作系统的换行符:
String newline = System.getProperty("line.separator");
此外,不是使用FileOutputStream将原始字节写入文本文件,为什么不将其包装在PrintStream对象中,以便您可以轻松地使用println(...)为您创建新行?
答案 1 :(得分:1)
我猜您正在使用记事本查看该文件。
行尾字符因系统而异。更高级的文本编辑器(v.g. Notepad ++)将正确显示它,因为它试图找到为此文件准备的系统。
通常,不要使用“\ n”,而是使用
java.lang.System.getProperties().get("line.separator")
答案 2 :(得分:0)
如果您的操作系统是Windows,而不是必须使用\r\n
换行,只有\n
在Windows中不起作用,您可以找到更多详细信息here
答案 3 :(得分:0)
这是因为对于Windows新行是:\ r \ n。在其他OS \ n将是好的
答案 4 :(得分:0)
当您需要一个新行时,最佳做法是使用系统换行符串,方法是在System.getProperty(“line.separator”)中放置换行符。
这样,它将为你正在制作文件的平台(windows / mac / linux)使用正确的新行。