天天看点

【日常踩坑】Java在Linux环境生成文件格式问题

最近有个要和第三方系统进行文件对接的需求,按照对方要求完成对接需求吗,在联调过程中发现第三方系统无法解析我上传的txt文件,且文件编码格式是第三方系统要求的UTF-8格式,自我检查一整天时间才发现了这个生成文件的坑,也怪自己对Linux文件了解不深导致的,特记录如下:

背景

需要和第三方系统进行上报txt文件对接

问题

按照要求生成的UTF-8格式的文件始终解析失败

定位原因

是因为生成的文件,编码格式符合要求,但是文件格式是dos格式,导致第三方系统解析失败。

项目中是使用FileOutputStream生成的文件,但是在数据换行时,我使用的 \n\r 进行换行,但是在Linux环境中只需要使用 \n 即是换行,多余的 \r 符号导致文件格式变成dos格式

附Linux环境下查看文件格式的方法
1、用vim打开文件
2、:set ff
           

解决办法

在生成文件时,将数据换行符从 \n\r 替换为 \n 即可

更多相关内容请移步个人博客主页