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