2017-04-26 42 views
-1

我想讀.TXT文件到Eclipse控制檯,但我似乎無法弄清楚的問題是什麼,我都會得到一個FileNotFoundException時,我想閱讀它 - 這是我到目前爲止的代碼:FileNotFoundException異常爪哇 - 無法找到TXT文件

public static void main(String[] args) throws IOException{ 
    Map<String,String> map = new HashMap<String, String>(); 
    BufferedReader in; 
    in = new BufferedReader(new FileReader("./morse-code.txt")); 
    String line = ""; 
    while ((line = in.readLine()) != null){ 
     String parts[] = line.split("\t"); 
     map.put(parts[0], parts[1]); 
    } 
    in.close(); 
    System.out.println(map.toString()); 
} 

該文件是在正確的目錄,我檢查如果IDE在正確的道路與搜索:

String curDir = System.getProperty("user.dir"); 
System.out.println("Current sys dir: " + curDir); 

但儘管如此,如果我想從文件中讀取我收到此錯誤:

Exception in thread "main" java.io.FileNotFoundException: C:\Users\User\workspace\AuD\morse-code.txt (Das System kann die angegebene Datei nicht finden) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileReader.<init>(Unknown Source) 
    at orkgrunzer.OrkGrunzer.main(OrkGrunzer.java:16) 

我不能發現問題,也許有人可以幫助我:)

+0

抱任何包中定義的? –

+3

如果在命令提示符中執行'notepad C:\ Users \ User \ workspace \ AuD \ morse-code.txt',那麼該文件是否打開? –

+3

您在此處閱讀用戶目錄:'System.getProperty(「user.dir」);'不是當前工作目錄 – Jens

回答

0

從文件系統保護自己,你可以把你的文件上類路徑的根源並加載它這個方法:

BufferedReader bufferedReader = new BufferedReader(
    new InputStreamReader(Class.class.getResourceAsStream("/morse-code.txt"))); 

如果你決定把它像下面一些文件夾:

resources/files/codes/morse-code.txt 

裝上類路徑那麼你必須通過引用它的文件夾resources

"/files/codes/morse-code.txt" 
+0

我已經試過這個,仍然是NullPointerException –