该程序对“未知来源”意味着什么,我该如何解决?

时间:2019-02-09 16:45:30

标签: java java.util.scanner

我一直试图从工作簿中复制程序,尝试使用磁盘扫描仪,但是我遇到了一个问题,在第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的所有建议,但没有一个起作用。有什么我想念的吗?

编辑:发布了错误错误,已修复

2 个答案:

答案 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”