java将文件输出存储到数组中

时间:2013-12-12 16:47:56

标签: java arrays file-io

我有一个关于如何将文件输出存储到数组中的问题。在我的情况下,我试图将文件中的所有日期存储到数组中。对于我这样做的方式,编译器抱怨“不是声明”。我怎样才能解决这个问题?任何帮助将不胜感激。下面是我的代码(错误行前面有反斜杠):

double token[] = new double[9];

            File filename = new File("/Users/timothylee/gravity1.txt");

            Scanner inFile = new Scanner(filename);

            while(inFile.hasNext()){
               //////////////// token[] = inFile.nextDouble();
                System.out.println(token);
            }
            inFile.close();

如果需要,请输入以下文件:

gravity1.txt:
      3.70
      8.87
      9.79
      3.70
      24.78
      10.44
      8.86
      11.13
      0.61

4 个答案:

答案 0 :(得分:1)

        ArrayList<Double> token = new ArrayList<Double>();

        File filename = new File("/Users/timothylee/gravity1.txt");

        Scanner inFile = new Scanner(filename);

        while(inFile.hasNext()){
            token.add(inFile.nextDouble());
        }
        inFile.close();
        System.out.println(Arrays.toString(token));

使用ArrayList,不要让你的生活更加艰难。 ;)这也使它更灵活,因为文件中有多少数据/行无关紧要。

答案 1 :(得分:0)

double token[] = new double[9];

int i = 0;
while(inFile.hasNext()){
    token[i] = inFile.nextDouble();
    System.out.println(token);
    i++;
}
inFile.close();

这假设文件只有9行。

答案 2 :(得分:0)

您没有为令牌数组分配任何内容,这就是您收到“not a statement”错误的原因。您需要告诉Java where 将下一个双重放入:

double token[] = new double[9];
File filename = new File("/Users/timothylee/gravity1.txt");

        Scanner inFile = new Scanner(filename);
        int i = 0;
        while(inFile.hasNext()){
           token[i] = inFile.nextDouble();
            System.out.println(token);
           i++;
        }
        inFile.close();

答案 3 :(得分:-2)

这在使用map的Java 8中会更简单。这是Java 7版本:

    File filename = new File("/Users/timothylee/gravity1.txt");

    List<Double> doubleList = new ArrayList<Double>();
    try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
        String line;
        while ((line = reader.readLine()) != null) {
            doubleList.add(Double.parseDouble(line))
        }
    }

    double[] doubles = new double[doubleList.size()];
    for (int i = 0; i < doubleList.size(); i++) {
        doubles[i] = doubleList.get(i);
    }