2012-02-11 62 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