2012-02-11 30 views
0

我是一个java新手,正在寻找一些帮助读取文件的帮助。这是我正在使用的代码。在Java中读取.txt文件的问题

来源:

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文件,它位于同一文件夹中因为我正在编译的类......如何解决它的任何想法?谢谢。

+1

给出正确的道路。像'D:/ jmd/sample.log'。 – Arung 2012-02-11 21:53:00

+0

请在这里发布文件的完整路径,它是否包含任何国家的符号? – 2012-02-11 22:07:56

回答

1

error: unreported exception FileNotFoundException; must be caught or declared to be thrown编译错误。这意味着您的代码中的一个方法调用被声明为抛出FileNotFoundException。

它与文件的位置无关,因为您的程序甚至没有执行。

Scanner constructor您在第28行调用时声明可能会抛出FileNotFoundException。

这意味着你需要处理这个可能抛出的异常。通过将throws FileNotFoundException添加到您的Escanear方法定义(不应以大写字母btw开头),或者通过使用此方法调用try-catch来调用该行。

+0

解决了这个问题,谢谢。 – Jmdjorgeek 2012-02-11 22:09:37

0

您需要捕获或抛出FileNotFoundException以使其编译。

例子:

Scanner sc; 
try { 
    sc = new Scanner(new File("inicio.txt")); 
} catch (FileNotFoundException e) { 
    System.exit(1); 
} 
+0

解决了“抛出”,谢谢 – Jmdjorgeek 2012-02-11 22:09:55

0

您的评论说:

The thing is that when I give it the full path name, it shows 9 illegal escape character errors

这可能是由于在喜欢你的源代码的路径:

"foo\dir\myfile.txt" 

必须逃脱反斜杠,使这个合法的Java:

"foo\\dir\\myfile.txt" 

(或者用斜线 - 我觉得这工作得很好,即使在Windows上)

的Java认为\d\m,意在对特殊字符编码为转义序列

有关合法转义序列的列表,请参阅http://docs.oracle.com/javase/tutorial/java/data/characters.html,例如换行符为\n

+0

已经解决了抛出FileNotFoundException,谢谢反正。 – Jmdjorgeek 2012-02-11 22:14:18