如何在Java中将数组写入.csv?

如何在Java中将数组写入.csv?,java,csv,Java,Csv,我正试图用Java编写一段代码,生成一个数据数组,我希望将该数据写入一列CSV文件中。然而,我正在努力获得正确的输出。我的程序生成数组中的填充 double[]wasp=新的double[1000] 它由多个函数之一填充,例如: for (int i = 0; i < wasp.length; i++) { double mu = -10 + Math.random()*20; double sigma = 0 + Math.

我正试图用Java编写一段代码,生成一个数据数组,我希望将该数据写入一列CSV文件中。然而,我正在努力获得正确的输出。我的程序生成数组中的填充

double[]wasp=新的double[1000]

它由多个函数之一填充,例如:

for (int i = 0; i < wasp.length; i++) {
                double mu = -10 + Math.random()*20;
                double sigma = 0 + Math.random()*10;
                wasp[i] = nextGaussian(mu, sigma);
                description = "Normal";
                Param1 = Double.toString(mu);
                Param2 = Double.toString(sigma);
            }
for(int i=0;i
我使用以下代码尝试将数组写入CSV:

    FileWriter writer = new FileWriter("C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv");
    
    for (int j = 0; j < wasp.length; j++) {
        writer.append((char) wasp[j]);
    writer.append(",");
    }
    writer.toString();    
    writer.flush();
    writer.close();
FileWriter writer=newfilewriter(“C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv”);
对于(int j=0;j
但是,当我打开CSV文件时,它看起来“已损坏”,好像字符编码不正确或其他什么。数据也会填充文件中的多个列

我期望的输出是一个CSV文件,其中包含一列实际值;比如说,

1.467354

0.812738

3.595733

等等。然而,我得到的是一篇专栏文章,内容如下:

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ïïï,ïï,ïï,ïï,ïï,ï


我做错了什么?我查看了Java主页上的教程,并尝试在StackOverflow上采用其他类似的解决方案,但似乎我遗漏了一些关键的内容。

在CSV格式中,每组数据由新行(\n)分隔,每列由逗号分隔。因此,如果您想要一列数据,那么您的代码应该如下所示

for (int j = 0; j < wasp.length; j++) {
    writer.append((char) wasp[j]);
writer.append("\n");
}
for(int j=0;j
在CSV格式中,每组数据用新行(\n)分隔,每列用逗号分隔。因此,如果您想要一列数据,那么您的代码应该如下所示

for (int j = 0; j < wasp.length; j++) {
    writer.append((char) wasp[j]);
writer.append("\n");
}
for(int j=0;j
在CSV格式中,每组数据用新行(\n)分隔,每列用逗号分隔。因此,如果您想要一列数据,那么您的代码应该如下所示

for (int j = 0; j < wasp.length; j++) {
    writer.append((char) wasp[j]);
writer.append("\n");
}
for(int j=0;j
在CSV格式中,每组数据用新行(\n)分隔,每列用逗号分隔。因此,如果您想要一列数据,那么您的代码应该如下所示

for (int j = 0; j < wasp.length; j++) {
    writer.append((char) wasp[j]);
writer.append("\n");
}
for(int j=0;j
只需使用
string.valueOf(double d)
方法将double转换为string即可

FileWriter writer = new FileWriter("C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv");

for (int j = 0; j < wasp.length; j++) {
    writer.append(String.valueOf(wasp[j]));
    writer.append("\n");
}
writer.close();
FileWriter writer=newfilewriter(“C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv”);
对于(int j=0;j

或者,您也可以根据需要使用来格式化您的double

只需使用
string.valueOf(double d)
方法将双精度转换为字符串即可

FileWriter writer = new FileWriter("C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv");

for (int j = 0; j < wasp.length; j++) {
    writer.append(String.valueOf(wasp[j]));
    writer.append("\n");
}
writer.close();
FileWriter writer=newfilewriter(“C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv”);
对于(int j=0;j

或者,您也可以根据需要使用来格式化您的double

只需使用
string.valueOf(double d)
方法将双精度转换为字符串即可

FileWriter writer = new FileWriter("C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv");

for (int j = 0; j < wasp.length; j++) {
    writer.append(String.valueOf(wasp[j]));
    writer.append("\n");
}
writer.close();
FileWriter writer=newfilewriter(“C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv”);
对于(int j=0;j

或者,您也可以根据需要使用来格式化您的double

只需使用
string.valueOf(double d)
方法将双精度转换为字符串即可

FileWriter writer = new FileWriter("C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv");

for (int j = 0; j < wasp.length; j++) {
    writer.append(String.valueOf(wasp[j]));
    writer.append("\n");
}
writer.close();
FileWriter writer=newfilewriter(“C:\\Users\\Havok\\Google Drive\\Skripsie\\R\\JavaOut.csv”);
对于(int j=0;j


或者,您也可以根据需要使用来格式化您的double

wasp数组的内容是什么?您不必使用writer.toString()。代码似乎没问题。你能告诉我们你期望得到什么吗?另外,请告诉我们
wasp
Cool的定义,它将根据定义和输出样本进行编辑。wasp
的类型是什么?为什么您需要
(char)wasp[j]
铸造?如果你想有一个单一列的CSV文件,你不需要“,”,但你需要一行结束。如果添加“,”表示有两列,其中一列为空。您也不需要调用toString()和flush()方法。wasp数组的内容是什么?您不必使用writer.toString()。代码似乎没问题。你能告诉我们你期望得到什么吗?另外,请告诉我们
wasp
Cool的定义,它将根据定义和输出样本进行编辑。wasp
的类型是什么?为什么您需要
(char)wasp[j]
铸造?如果你想有一个单一列的CSV文件,你不需要“,”,但你需要一行结束。如果你加上“,”意味着你有两列和一列