我一直在下面得到错误
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
我的代码的相关摘录如下。我觉得我好像什么都试过了,但我可能错过了一些简单的东西。起初,我的文本文件在Netbeans的默认包部分,但下面打印工作目录的代码显示了Documents中的Netbeans项目文件夹,所以我已经将telnos.txt复制到那里,仍然说找不到文件。
我甚至尝试过包含完整的文件路径,同样的问题。
private final String sourceName = "telnos.txt";
public void loadData (String sourceName){
String workingDir = System.getProperty("user.dir");
System.out.println("Current working directory : " + workingDir);
Scanner read = new Scanner(new File(sourceName));//.useDelimiter("\Z");
int i = 1;
String name = null;
String telno = null;
while (read.hasNextLine()) {
if(i%2 != 0)
name = read.nextLine();
else {
telno = read.nextLine();
add(name, telno);
}
i++;
}
}
这与文件的位置无关。相反,请查看此链接:http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.io.File)
因为new Scanner(new File(sourceName))
有可能抛出FileNotFoundException
,所以需要处理异常,方法是在这里捕获它,或者将它抛出回调用方法。因为这个函数似乎不在调用堆栈的底部,所以我强烈建议通过更改将其丢弃
public void loadData (String sourceName)
至
public void loadData (String sourceName) throws FileNotFoundException