Java – 将string写入CSV文件

我想用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本地执行此操作。

感谢帮助,

在这里输入图像说明

根据此Microsoft文档 ,由于大写字母"ID"作为第一行显示错误。 将其更改为"id" ,并按预期工作。

这很奇怪 但是,是的!

也试图通过使用文件对象减less文件访问最小化。

我testing了下面的代码,完美的工作。

 import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; public class CSV { public static void main(String[]args) throws FileNotFoundException{ PrintWriter pw = new PrintWriter(new File("test.csv")); StringBuilder sb = new StringBuilder(); sb.append("id"); sb.append(','); sb.append("Name"); sb.append('\n'); sb.append("1"); sb.append(','); sb.append("Prashant Ghimire"); sb.append('\n'); pw.write(sb.toString()); pw.close(); System.out.println("done!"); } } 
 import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; public class CsvFile { public static void main(String[]args){ PrintWriter pw = null; try { pw = new PrintWriter(new File("NewData.csv")); } catch (FileNotFoundException e) { e.printStackTrace(); } StringBuilder builder = new StringBuilder(); String ColumnNamesList = "Id,Name"; // No need give the headers Like: id, Name on builder.append builder.append(ColumnNamesList +"\n"); builder.append("1"+","); builder.append("Chola"); builder.append('\n'); pw.write(builder.toString()); pw.close(); System.out.println("done!"); } }