2014-03-27 132 views
0

我使用控制檯IO讀取文件,並在我的IDE窗口中顯示出來(我用Netbeanz)可以閱讀

package javaapplication1; 
import java.util.*; 
import java.io.*; 

public class JavaApplication1 
{ 
    public static void main(String[] args) throws FileNotFoundException 
    { 
     String data; 
     Scanner myscan = new Scanner(new File("foo.txt")); 

     while (myscan.hasNextLine()) 
     { 
      data = myscan.nextLine(); 
      System.out.println(data); 
     } 

     myscan.close(); 
    } 
} 

出於某種原因無法打開文件,我無法打開文件:foo.txt雖然我有把它放在同一個文件夾我的應用程序

這裏是哪裏我已經把圖片foo.txt

enter image description here

我得到下面的異常

Exception in thread "main" java.io.FileNotFoundException: foo.txt (The system cannot find the file specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at java.util.Scanner.<init>(Scanner.java:656) 
    at javaapplication1.JavaApplication1.main(JavaApplication1.java:21) 

如何解決這個問題,發生了什麼事?

+0

你有一個錯誤的堆棧跟蹤這或許可以解釋呢? –

+0

什麼是例外? –

回答

1

我假設最可能的原因是找不到文件。

當您打開一個文件時,它會從您的工作目錄中查找。

我認爲netbeans是項目的根源。

在這種情況下,真實文件名是src/javaapplication1/foo.txt而不是foo.txt

如果您只需要該文件,並且不需要指向任何文件,則可以將其嵌入到應用程序中並使用輸入流進行讀取。

1

File取絕對路徑。你可以試試這個

InputStream is = JavaApplication1.class.getResourceAsStream("foo.txt"); 
myscan = new Scanner(is); 
0

試試這個

 URL url = JavaApplication1.class.getResource("sample.txt"); 
     File f = new File(url.toURI()); 
     Scanner scan = new Scanner(f); 
     while(scan.hasNext()){ 
      System.out.println(scan.next()); 
     } 
相關問題