java写文件时的换行符

 

linux和unix系统的换行是"\n",而windows的换行并不是直接的"\n",是"\r\n"。所以out.write("\n")只能得到一个黑框,因为windos不认为这是个“换行”。 直接从记事本输入的话,windows自动输入了"\r\n",所以从从文本文件中读出来的也是"\r\n",可以正常显示。

     那么这是为什么呢?稍微学过正则表达式的朋友都知道:\r是回车符,而\n是换行符。Windows默认\n在文档中显示的是一个空格或者小黑框。所以,要先回车,再换行。

 

解决方案:

1.由于unix和windows系统参数的差别,故不使用硬编码进行换行,通过使用System.getProperty("line.separator");获取换行符 
2.通过使用out.newLine();实现 

 

扩展:

操作系统常用参数的差别,如: 
line.separator(windows:"\r\n";unix:"\n"); 
file.separator(windows:"\";unix:"/"); 
path.separator(windows:";";unix:":"); 

 

 

 

你可能感兴趣的:(java)