我一直试图从工作簿中复制程序,尝试使用磁盘扫描仪,但是我遇到了一个问题,在第14-17行(磁盘scans.next行),我一直收到错误消息“未知来源”
这是代码:
public class SomeClassName {
public static void main(String args[]) throws IOException {
Scanner diskScanner = new Scanner(new File("C:\\Users\\student\\Workspace\\TextFiles\\Test.txt"));
diskScanner.nextInt();
diskScanner.nextDouble();
diskScanner.next();
diskScanner.nextLine();
}
}
这是我在控制台中遇到的错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at SomeClassName.main(SomeClassName.java:14)
我尝试遵循Eclipse的所有建议,但没有一个起作用。有什么我想念的吗?
编辑:发布了错误错误,已修复
答案 0 :(得分:1)
当没有其他数据可读取scanner
或格式错误的数据时,通常会发生此错误。
检查文件,查看所有数据是否存在,以及所读取的格式。
使用扫描仪,您需要在实际阅读之前检查是否有hasNextLine()
的下一行或hasNextInt()
的下一个整数。
像这样
while(sc.hasNextLine()){
str=sc.nextLine();
//...
}
在您的情况下,由于它不存在,因此无法获取下一个int。 请再次更改您的数据,然后执行类似的操作
if(disKScanner.hasNextInt()){
diskScanner.nextInt();
}
// similarly do this check for all reads then only read it
答案 1 :(得分:0)
您可能正在使用JRE而不是JDK。运行时无法告诉您需要开发工具包怎么了。我认为已经有一个类似的错误,如果可以,请立即将其标记为重复。
编辑:您很可能有一个filenotfound异常,请确保路径正确。 Eclipse确实使它的文件夹通常是小写而不是“ Workspace”