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

马丁

我正在尝试用Java编写一段代码来生成数据数组,并且我想将该数据写到一个单独的列中的CSV文件中。但是,我正在努力获得正确的输出。我的程序生成数组中的总体

double [] wasp = new 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);
            }

并且我使用以下代码尝试将数组写入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();

但是,当我打开CSV文件时,它看起来像“已损坏”,就好像字符编码不正确一样。数据还填充了文件中不止一列。

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

1.467354

0.812738

3.595733

等等。但是,我得到的是一列充满以下内容的列:

,,,,,,,,,,,, ,,,,,,,,, ,,,,,,,,,,, ¿,,,,,,,,

我究竟做错了什么?我已经看过Java主页上的教程,并试图在StackOverflow上改编其他类似的解决方案,但是似乎我缺少了一些关键的东西。

bhdrkn

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

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();

另外,您可以使用String.format()来格式化所需的double格式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章