有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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) 个答案

  1. # 1 楼答案

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

    这是假设文件只有9行

  2. # 2 楼答案

    在使用map的Java8中,这会更简单。以下是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);
        }
    
  3. # 3 楼答案

            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,不要让你的生活变得更艰难这也使它更加灵活,因为文件中有多少数据/行并不重要

  4. # 4 楼答案

    您没有向令牌数组分配任何内容,这就是为什么会出现“nota statement”错误。你需要告诉Java在哪里这样放置下一个double:

    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();