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:":"); 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值