java.util.NoSuchElementException错误不知道如何解决

时间:2019-04-17 18:23:36

标签: java

我正在尝试将包含整数表的文件读入13×17 2D数组中,但出现NoSuchElementException错误,我不知道该如何解决。 有关我正在做的作业的更多信息,请单击链接:https://introcs.cs.princeton.edu/java/assignments/mozart.html

96   22  141   41  105  122   11   30   70  121   26    9  112   49  109   14
32    6  128   63  146   46  134   81  117   39  126   56  174   18  116   83
69   95  158   13  153   55  110   24   66  139   15  132   73   58  145   79
40   17  113   85  161    2  159  100   90  176    7   34   67  160   52  170
148   74  163   45   80   97   36  107   25  143   64  125   76  136    1   93
104  157   27  167  154   68  118   91  138   71  150   29  101  162   23  151
152   60  171   53   99  133   21  127   16  155   57  175   43  168   89  172
119   84  114   50  140   86  169   94  120   88   48  166   51  115   72  111
98  142   42  156   75  129   62  123   65   77   19   82  137   38  149    8
3   87  165   61  135   47  147   33  102    4   31  164  144   59  173   78
54  130   10  103   28   37  106    5   35   20  108   92   12  124   44  131

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class Waltz {
    private static int minuetROWS = 13;
    private static int trioROWS = 7;
    private static int COLS = 17;

    public static void main(String[] args) throws FileNotFoundException {

        File file = new File("C:\\Users\\Brandizzy\\Downloads\\minuet.txt"); // Creates file object to read file.
        //Scanner sc = new Scanner(file);
        Waltz a = new Waltz(); // Creates an instance of the class.
        String[][] minuet = a.getMinuet(file); // Calls the method getMinuet takes txt file in "file".
        System.out.println(Arrays.toString(minuet));

    }
    /* This method takes the txt file "minuet.txt" as a parameter and stores the
    file information into a 2D array called minuet.*/
    public String[][] getMinuet(File file) throws FileNotFoundException{
        Scanner sc = new Scanner(file);
        String[][] minuet = new String[minuetROWS][COLS];
        while(sc.hasNext()){
            Scanner sc1 = new Scanner(file);
            for(int i = 0; i< minuet.length; i++){
                for(int j = 0; j < COLS;j ++){
                    String[] line = sc1.nextLine().trim().split(" ");
                    minuet[i][j] = line[j];
                }
                sc1.close();
            }
            sc.close();
            }
        return minuet;
    }

}

1 个答案:

答案 0 :(得分:0)

您好,祝您功课顺利。由于这是一项作业,因此我将尝试给您一个提示,而不是一个完整的答案。

您会注意到from the javadoc,在您的示例中Scanner#nextLine()是唯一可以抛出NoSuchElementException的东西。您可能想看看是否可以弄清楚为什么nextLine()调用得出的结论是没有下一行要前进。