我是一个java新手,正在寻找阅读文件的帮助。这是我正在使用的代码。
源:
public void Escanear()
{
Scanner sc=new Scanner(new File("inicio.txt"));
while(sc.hasNext())
{
String token = sc.next();
if (token.equals("Pared"))
{
int i=sc.nextInt();
int j=sc.nextInt();
_mat=new Pared[i][j];
}
else if(token.equals("Fantasma"))
{
int i=sc.nextInt();
int j=sc.nextInt();
_mat=new Fantasma[i][j];
}
}
}
错误:
C:\Users\User\Documents\Jorge\Clases UNIMET\Trimestre 5\Estructuras de Datos\Proyecto Pacman\JuegoPacman.java:28: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
Scanner sc=new Scanner(new File("inicio.txt"));
我已经导入了java.io.FileNotFoundException,我已经打开了.txt文件,该文件位于与我正在编译的类相同的文件夹中...任何想法如何修复?感谢。
答案 0 :(得分:1)
此error: unreported exception FileNotFoundException; must be caught or declared to be thrown
是编译错误。这意味着您的代码中的一个方法调用被声明为抛出FileNotFoundException。
它与文件的位置无关,因为您的程序甚至无法执行。
您在第28行调用的Scanner constructor被声明可能抛出FileNotFoundException。
这意味着您需要处理这个可能抛出的异常。通过将throws FileNotFoundException
添加到您的Escanear方法定义(不应以大写字母btw开头),或使用此方法调用try-catch
来围绕该行。
答案 1 :(得分:0)
您需要捕获或抛出FileNotFoundException以使其进行编译。
示例:
Scanner sc;
try {
sc = new Scanner(new File("inicio.txt"));
} catch (FileNotFoundException e) {
System.exit(1);
}
答案 2 :(得分:0)
你在评论中说:
事情是,当我给它完整的路径名时,它显示9 非法转义字符错误
这可能是由于源代码中的路径如下:
"foo\dir\myfile.txt"
您必须转义反斜杠才能生成合法的Java:
"foo\\dir\\myfile.txt"
(或使用正斜杠 - 我认为即使在Windows上也能正常工作)
Java认为\d
和\m
是作为转义序列编码的特殊字符。
请参阅http://docs.oracle.com/javase/tutorial/java/data/characters.html以获取合法转义序列列表,例如换行符\n
。