CSV未显示正确数据[重复]

问题描述 投票:0回答:1
    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 而非 doubleint. 你知道为什么吗?

java file csv save doc
1个回答
0
投票

一个使用 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.


-1
投票

你需要指定字符集(通常是UTF-8)。参见 此处 的方法。在那个堆栈溢出线程上有更多的信息。

© www.soinside.com 2019 - 2024. All rights reserved.