2011-01-27 65 views
1

這是我第一篇關於堆棧溢出的文章!我是Java新手,最近一直在嘗試使用Java Buffered Reader for File I/O。我發現了一個例外,在線程緩衝讀者文本文件?

異常「主要」 java.io.FileNotFoundException

這裏是我的代碼示例:

System.out.println("Please input an existing filename, otherwise type in 0;"); 
fileName = input.nextLine(); 
if(fileName.compareTo("0") != 0) 
{ 
    BufferedReader inFile = new BufferedReader(new FileReader(fileName)); 

    firstName = inFile.readLine(); 
    lastName = inFile.readLine(); 
    phoneNumber = inFile.readLine(); 
    while (phoneNumber != null) { 
     c1[index] = new Contact(firstName,lastName,phoneNumber); 
     index++; 
     firstName = inFile.readLine(); 
     lastName = inFile.readLine(); 
     phoneNumber = inFile.readLine(); 
    } 
    inFile.close(); 
} 

我已經把我的txt文件在哪裏了。類和.java文件(我正在使用Netbeans IDE)。 我輸入「namelist.txt」作爲fileName字符串的輸入。

我把它放在錯誤的地方還是我錯過了什麼?

+2

類型以namelist.txt的完整路徑作爲輸入。您需要將該文件放在應用程序的「工作目錄」中 – 2011-01-27 15:08:27

回答

3

的Java找不到你fileName

fileName = input.nextLine(); 

指定哪些文件添加以下後fileName = input.nextLine();

System.out.println("Reading from: " + new java.io.File(fileName).getAbsolutePath()); 

打印出其中的Java嘗試查找文件

1

使用getClass().getResourceAsStream(filename) - 這將解析相對於當前類位置(在類路徑中)的文件名。因此您將獲得InputStream。然後將其包裝在InputStreamReader中,指定所需的編碼。

當您傳遞一個文件名時,它將在您最不可能想要的默認目錄中查找。

+0

非常感謝! – n00b 2011-01-27 15:16:31