2015-10-18 89 views
1

我在嘗試在我的D驅動器中讀取我的文件abc.txt時出現錯誤。 即使我試圖格式爲: 「d:\ EDU \ java的\的abc.txt」Java異常錯誤I/O

這裏是我的代碼:

package javapro; 

import java.io.FileInputStream; 

public class office { 

    public static void main (String[] args)throws Exception { 
     FileInputStream apple = new FileInputStream ("D:/EDU/java/abc.txt"); 
     int din; 
     while ((din=apple.read())!=-1){ 
      System.out.println((char)din); 
     } 
     apple.close(); 
    } 
} 

我的錯誤:

Exception in thread "main" java.io.FileNotFoundException: D:\EDU\java\abc.txt (The system cannot find the file specified) 
    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 javapro.office.main(office.java:8) 
+0

你放的abc.txt在正確的地方(d:\ EDU \ java的\)?另外,如果你使用反斜槓,它應該是「D:\\ EDU \\ java \\ abc.txt」。 –

回答

1

確保文件實際上是位於該目錄中。右鍵單擊並單擊屬性以檢查路徑。

如果已經這樣做,請將所有\更改爲/\\

1

錯誤是不言自明的。該文件不是你已經告訴應用程序的地方。檢查你的路徑,確保它通向文件。

0

1)更改代碼如下

FileInputStream apple = new FileInputStream ("D:\\EDU\\java\\abc.txt"); 

InputStream is = getClass().getResourceAsStream("abc.txt"); 

//if abc.txt is present in classpath 

從InputStream中,你必須讀取數據。

編輯:解決非靜態誤差

InputStream is = office.class.getClass().getResourceAsStream("abc.txt"); 
+0

包javapro; import java.io.FileInputStream; import java.io.InputStream; 公共類辦公{ \t公共靜態無效的主要(字串[] args)拋出異常{ \t \t InputStream爲=的getClass()的getResourceAsStream( 「的abc.txt」); int din; FileInputStream apple; ((din = apple.read())!= - 1){System.out.println((char)din); \t} apple.close(); } \t } – Dikil

+0

錯誤:異常在線程「主要」 java.lang.Error的:未解決問題彙編: \t不能在javapro使靜態參考從Object類型 \t的非靜態方法的getClass() .office.main(office.java:9) – Dikil

+0

用\\嘗試第一個。或者在類的構造函數中添加代碼並在main方法中創建對象。 –