Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.util.NoSuchElementException-不确定是什么';出问题了_Java_Eclipse_Java.util.scanner - Fatal编程技术网

“线程中的异常”;“主要”;java.util.NoSuchElementException-不确定是什么';出问题了

“线程中的异常”;“主要”;java.util.NoSuchElementException-不确定是什么';出问题了,java,eclipse,java.util.scanner,Java,Eclipse,Java.util.scanner,我目前正在尝试编写一个扫描仪,它获取一个数据集并将其解析为一个数组。但是,我遇到了例外情况: Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:907) at java.util.Scanner.next(Scanner.java:1416) at neural.neuralmain.readFile(neuralma

我目前正在尝试编写一个扫描仪,它获取一个数据集并将其解析为一个数组。但是,我遇到了例外情况:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1416)
    at neural.neuralmain.readFile(neuralmain.java:34)
    at neural.neuralmain.<init>(neuralmain.java:97)
    at neural.neuralmain.main(neuralmain.java:201)
线程“main”java.util.NoSuchElementException中的异常 位于java.util.Scanner.throwFor(Scanner.java:907) 下一步(Scanner.java:1416) 位于neural.neuralmain.readFile(neuralmain.java:34) 位于neural.neuralmin.(neuralmin.java:97) 位于neural.neuralmain.main(neuralmain.java:201) 我在这里看到了许多关于这个主题的主题,其中大多数似乎与检查是否有下一个项目可供扫描仪使用有关。我的印象是我的代码做到了这一点,因此希望能得到一些帮助

以下是代码的相关部分:

public int[][] readFile( int[][] inputArray, String filename, int dataType) {

    // A "try" block is used, as the constructor will throw an Exception should the filename not be recognised.
    try {
        // The code reads from the scanner, in, which is attached to the filename.
        Scanner input = new Scanner( new File( filename ) );

        //Initialising the array to store the input data.
        inputArray = new int[dataType][65];

        //  The data files are arranged into characters, with the first 64 values corresponding to one 4x4 area and
        //  the 65th corresponds to the character class. This combination loops writes the input file as an array.
        //  The class is the zeroth element and 1st-64th elements are the divided pixel areas.
        for ( int i = 0; i <= dataType; i++ ){
            for ( int j = 1; j <= 65; j++ ){
                while( !input.hasNextInt() ){
                    input.next();
                }
                inputArray[i][j] = input.nextInt();
            }
            while( !input.hasNextInt() ){
                input.next();
            }
            inputArray[i][0] = input.nextInt();
        }


        // When the program exits from the two previous "for" loops the program has finished reading from
        // the scanner, "input", and the scanner is closed.
        input.close();
        System.out.println("File successfully read in.");

        return inputArray;
    }
    catch (IOException error){

        // If the "try" block fails due to a file not being found, then an exception will be thrown.  
        System.out.println("File name not recognised. A blank array has been produced.");

        // An array of zeroes is created
        inputArray = new int[dataType][65];

        return inputArray;
    }
}
public int[][]读取文件(int[][]输入阵列,字符串文件名,int数据类型){
//使用“try”块,因为如果无法识别文件名,构造函数将抛出异常。
试一试{
//代码从附加到文件名的扫描仪中读取。
扫描仪输入=新扫描仪(新文件(文件名));
//初始化数组以存储输入数据。
inputArray=newint[dataType][65];
//数据文件按字符排列,前64个值对应一个4x4区域和
//第65位对应于字符类。这种组合循环将输入文件作为数组写入。
//该类是第0个元素,第1-64个元素是划分的像素区域。

对于(int i=0;i
neuralmin.java
中的第34行是什么?您读取的文件是什么样子的?您的类是否命名为
neuralmin
?第34行、第97行和第201行是什么?为了更快地获得更好的帮助,请发布一篇文章,这不是一个代码转储,而是一个简单的(简短的)但仍然可以运行代码,我们可以复制粘贴并看到与您相同的问题。这将减少混乱,并提供更多、更快和更好的响应:)“大多数似乎是为了检查扫描仪是否有下一个可用项。我的印象是我的代码这样做了”不完全是。您只是在检查
!input.hasNextInt()
,如果下一个令牌不是
int
,如果没有更多令牌,那么这是真的,如果没有更多令牌,并且您调用
input.next();
,会发生什么?