不要硬编码'\n' 和 '\r'作为换行符

一、问题现象: 
   下面的代码主要用于将业务数据输出至文件中供接口调用: 
BufferedWriter out = null; 
try 

   out = new BufferedWriter(new FileWriter(localFilePath + fileName, isAddLog)); 
   …… 
   …… 
   if(isImepServerRunning) 
   { 
      out.write("004|" + hostName + "|" + ip + "|0002|imep进程up|0|" + performTime + “\r\n”); 
   } 
   else 
   { 
      out.write("004|" + hostName + "|" + ip + "|0002|imep进程down|1|" + performTime + “\r\n”); 
   } 

   …… 
   此时出现了问题:结果文件中的数据换行在unix系统下不正确 

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

三、问题总结: 
由该问题可延伸至操作系统常用参数的差别,如: 
line.separator(windows:"\r\n";unix:"\n"); 
file.separator(windows:"\";unix:"/"); 
path.separator(windows:";";unix:":"); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值