我正在尝试用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上改编其他类似的解决方案,但是似乎我缺少了一些关键的东西。
只需使用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] 删除。
我来说两句