Java创建csv文件,其中列中的数据不是内联的

Java创建csv文件,其中列中的数据不是内联的,java,csv,Java,Csv,我尝试生成一个CSV文件,数据用逗号“,”分隔,新行用“\n”分隔。 新行正在运行,但逗号不起作用,我的所有数据都在第一列,而不是我希望的两列 代码如下: BufferedWriter writer = new BufferedWriter(new FileWriter("test.csv")); writer.write("Username"); writer.write(","); writer.write("Count"); writer.write("\n"); writer.write

我尝试生成一个CSV文件,数据用逗号“,”分隔,新行用“\n”分隔。 新行正在运行,但逗号不起作用,我的所有数据都在第一列,而不是我希望的两列

代码如下:

BufferedWriter writer = new BufferedWriter(new FileWriter("test.csv"));
writer.write("Username");
writer.write(",");
writer.write("Count");
writer.write("\n");
writer.write("Bob");
writer.write(",");
writer.write("20");
writer.write("\n");
writer.write("Mike");
writer.write(",");
writer.write("32");
writer.write("\n");
writer.close();
结果是:

Username,Count
Bob,20
Mike,32
预期的结果是这样的

Username | Count
  ------ | ------
    Bob  |  20
  ------ | ------
    Mike |  32

如果希望文件的外观如下所示:

Username | Count
  ------ | ------
    Bob  |  20
  ------ | ------
    Mike |  32
然后您需要修改代码来编写它。但是,你得到的正是预期的结果

Username,Count
Bob,20
Mike,32

使用CSV(逗号分隔值),正如它所说,CSV是用逗号分隔的数据,每一行都是一个寄存器。我不知道您希望发布这个问题是什么。

我相信文件创建正确,这就是csv文件的工作方式。例如,在excel中打开它们时,转到标题,然后单击弹出窗口中的“下一步”选择“分隔符”,然后单击“下一步”后,选择“逗号”,然后单击“完成”

在这里的一个项目上,我们使用
创建CSV分隔符来创建我们的文件,而不是

这是使用Excel正确解析,而无需在文件或Excel中进行任何更改

编辑:正如Pshemo所说,您可以在文件的第一行指定分隔符。像这样:

sep=,
a,b
c,d

这将在Excel中正确格式化(已测试)。我不使用此解决方案,因为我使用生成的文件来存档和传输数据,所以我不想检查第一行是数据还是属性。但这是一个更普遍的解决方案。

我看不出你的问题。你有你期望的结果,不是吗?如果我使用
,它会起作用作为txt文件中的分隔符,然后更改扩展名,而不是使用
。。。不要问为什么您需要第二个结果,那么您肯定需要努力获得该设计,是的,第二个不是csv文件格式。@AxelH您可以定义“works”吗?在这种情况下,替代解决方案可能是在第一行中设置分隔符,使用
sep=,
,如中所述。但我们仍然不能确定这是OP想要的,直到OP澄清他的问题。这并不能真正解决提问者的问题。既然你说他的问题措辞错误,那就更适合作为评论。你应该注意到,我没有足够的声誉发表评论。当应该是评论时,几乎没有理由将其作为答案发表。我建议你看一下回答指南。在大多数情况下,说明“它很好/对我有用”的答案只不过是暗示OP提出了错误的问题或没有正确描述他的问题的评论。这样的评论已经存在,所以没有必要将其作为答案重新发布(更多信息:)。是的,他没有正确描述他的问题。我的观点是,如果可以的话,我会加上一条评论,但我不能,因为我没有足够的声誉。我们应该结束这个话题吗-_-