raf*_*fUk 3 java text cross-platform newline file
我从不同的系统获取不同格式的文件,我需要将这些文件导入到我们的数据库中.部分导入过程用于检查行长度以确保格式正确.我们似乎遇到来自UNIX系统的文件有问题,其中添加了一个字符.我怀疑这是由于在UNIX和Windows平台上返回运输的编码方式不同.
有没有办法检测创建文件的文件系统,而不是检查行上的最后一个字符?或者也许是一种将文件作为文本而不是二进制文件读取的方法,我怀疑这是问题?
多谢你们 !
\n当windows使用\r\n和mac使用时,Unix系统使用行结尾\r.您无法检测文件系统,因为它根本不重要.如果我的编辑器支持它,我可以在Windows上使用\n.它只是那些操作系统的标准,而不是要求.
正确的方法 - 假设你没有一个正确的标记化功能,无论文件使用什么行结束 - 是搜索\n OR a\r \n然后结束当前行并从剩余数据中删除所有字符在开始下一行之前是\ r或\n.但是,如果您有空行并需要保留它们,这将导致问题.在这种情况下,您必须更仔细地查看换行符: