将由逗号分隔的两列浮点组成的dat文件读入两个数组

时间:2015-06-24 09:21:26

标签: java

我有一个dat文件,每行包含两个浮点数,用逗号分隔,如下所示:

1.224744871391589,0
1.224747983922952,2.77796297222263e-06
1.224757321499289,1.111185188889053e-05
1.224772884067338,2.500166675000371e-05
1.224794671538333,4.444740755556212e-05
1.224822683788003,6.944907430556598e-05
1.224856920656575,0.0001000066670000149
1.224897381948776,0.000136120185638909
1.224944067433837,0.0001777896302222487

我事先知道了列的长度(30000)。我想将每列存储在一个单独的数组中并返回它。我知道如何在python中执行此操作(使用line.split获取每行两个浮点数)但不确定在Java中最有效的方法是什么(我关心速度)。

1 个答案:

答案 0 :(得分:1)

您可以使用BufferedReader和2个数组(每列1个),阅读器将读取下一个双数并将其存储在相应的数组中(您应该在数组之间连续交替)。

这应该可以胜任。我还没有测试过。

double[] firstColumn = new double[30000];
double[] secondColumn = new double[30000];
int index = 0;

try {
      BufferedReader in = new BufferedReader(new FileReader("input.dat"));
      String str = in.readLine();

      while ((str = in.readLine()) != null) {
             String[] values = str.split(",");
             firstColumn[index] = Double.parseDouble(values[0]);
             secondColumn[index++] = Double.parseDouble(values[1]);         
      }

       in.close();
    } 
catch (IOException e) 
{
  // do the logging.
}