我对这个烦人的 ^M 有疑问,在导出一些数据时,将其写入要下载的 CSV 文件。我做了一些研究,发现如果您正在读取的文件来自 Windows 系统,则会发生此问题(Windows 使用 CR(即 ^M)/LF 对来指示行尾,而 UNIX 仅使用 LF)。
现在任何人都可以在将其提交给作者之前为我提供解决此问题的解决方案(例如消除或替换 ^M )(writer.write(columnToBeInserted);)
您可以使用unix2dos
和dos2unix
分别转换 UNIX 和 Windows 文件。两者都可以在 *nix 和 Windows 平台上使用。阅读更多。
适用于 Windows 的链接
当你阅读每一行时
line.replaceAll("\\p{Cntrl}", "");
或使用工具为您完成
在 linux/unix 环境中,有一个称为实用程序的实用程序dos2unix
,unix2dos
它将文件从 windows 转换为 linux 格式,反之亦然。
在 Windows 上检查此链接并下载实用程序,该实用程序将从 Windows 转换为 linux 格式http://www.sg-chem.net/u2win/