2013-02-04 42 views
0

我有这个恼人的^ M问题,同时导出一些数据,将其写入到CSV文件进行下载。我做了一些研究,发现如果你正在阅读的文件来自Windows系统,这个问题就会发生(Windows使用CR(即^ M)/ LF对来表示一行的结束,而UNIX只使用LF)。Java | CSV问题与^ M

现在谁能给我一个解决方案来克服这个问题(如消除或更换^ M),把它给笔者之前(writer.write(columnToBeInserted);)

回答

2

你可以使用unix2dosdos2unix转换UNIX和Windows文件。两者均可在* nix和Windows平台上使用。阅读more

链接为Windows

也看到在linux/unix环境下How to convert files from Dos to Unix in java

+0

您能否提供一个示例以便我可以在我的java代码中使用? – ComeRun

+1

@ComeRun查看最后一个链接 – Reimeus

+0

伙伴,由于这是我们的客户报告的问题,您是否能指导我如何重现此字符?就像我需要使用fronend发送文本消息然后创建该消息的报告(如CSV),我需要在消息textarea中输入一些内容来创建该问题,我不知道该怎么做!任何特殊的代码或什么? – ComeRun

0

有一个叫做公用事业dos2unixunix2dos,它将文件从windows转换为linux格式,反之亦然。

在Windows上检查此链接并下载当你阅读每一行界河会从Windows转换到Linux格式http://www.sg-chem.net/u2win/

+0

你能给我提供一个例子,以便我可以在我的java代码中使用吗?谢谢 – ComeRun

+0

这不是通过java代码完成的。你通过filename.java作为这个实用程序的命令参数,它会做转换,你这样做之前提交你的代码csv –

1

效用做

line.replaceAll("\\p{Cntrl}", ""); 

或使用工具来为你做它

+0

埃米尔我使用Linux环境,我不知道如何重现这个字符来测试你的建议。你能告诉我是否有任何特殊的代码来重现这个^ M char? – ComeRun