我试图用java将数据写入csv文件,但是当我尝试用excel打开生成的文件时,我得到一个错误,说文件已损坏。在记事本中打开文件时,它看起来格式正确,所以我不确定问题是什么。我使用FileWriter类将数据输出到文件。
FileWriter writer = new FileWriter("test.csv");
writer.append("ID");
writer.append(',');
writer.append("name");
writer.append(',');
...
writer.append('\n');
writer.flush();
writer.close();
我需要在java中使用一些库来打印到csv文件吗?我想只要你使用正确的格式,你就可以在java中原生地做到这一点。
感谢你的帮助,
肖
4条答案
按热度按时间pn9klfpd1#
这是因为MS Excel无法决定如何打开包含此类内容的文件。
若要解决此问题,请将
"ID"
替换为"id"
。当您将
ID
作为电子表格类型文件中的第一个单词时,它与SYLK文件的规范相匹配,并且MS Excel(以及可能的其他电子表格应用程序)尝试作为SYLK文件打开。但是,它不符合SYLK文件的完整规范,因为文件中的其余值是逗号分隔的。因此,显示错误。| 身份证|姓名|
| --------------|--------------|
| 1|乔恩·多伊|
| 二|无名氏|
作为奖励,尝试通过减少使用文件对象来最小化文件访问。
我测试过了,下面的代码应该可以工作。
cidc1ykv2#
kg7wmglp3#
我认为这是一个简单的java代码,它将在编译此代码后显示CSV中的字符串值:
gpfsuwkq4#