在Java中读取.text文件的问题

时间:2012-02-11 21:49:58

标签: java filenotfoundexception

我是一个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文件,该文件位于与我正在编译的类相同的文件夹中...任何想法如何修复?感谢。

3 个答案:

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