package aplikacja;
import java.io.*;
public class Plik {
double wymiary[] = {10, 23, 4};
public void zapisz_dane() throws IOException{
RandomAccessFile raf = new RandomAccessFile("pomiary.csv", "rw");
for(int i =0; i<wymiary.length; i++){
raf.writeDouble(wymiary[i]);
}
raf.close();
}
}
还有这个。
package aplikacja;
import java.io.*;
import aplikacja.*;
public class Main {
public static void main (String []args) throws IOException {
Plik plik = new Plik();
plik.zapisz_dane();
}
}
当我打开CSV文件时,我在CSV文件里有一些字符。
@$@7@
但我希望有10,23和4。如何解决这个问题?
它的工作原理是 String
而非 double
或 int
. 你知道为什么吗?
一个使用 PrintWriter:
package aplikacja;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class Plik {
double[] wymiary = { 10, 23, 4 };
public void zapiszDane() throws IOException {
File file = new File("pomiary.csv");
try (PrintWriter pw = new PrintWriter(file)) {
for (int i = 0; i < wymiary.length; i++) {
pw.println(wymiary[i]);
}
}
}
}
pomiary.csv结果。
10.0
23.0
4.0
注意: 一般来说,没有办法确定小数点后的精度。double
值。如果你想在Java中获得十进制精度,你可以使用 BigDecimal
.
你需要指定字符集(通常是UTF-8)。参见 此处 的方法。在那个堆栈溢出线程上有更多的信息。