2013-02-19 52 views
2
File read = new File("Numbers.txt"); 
Scanner inputFile = new Scanner(read); 

while(inputFile.hasNext()) 
{ 
    sum = inputFile.nextDouble() + sum; 
    count++; 
} 

inputFile.close();//close the input file 

我想讀出的數據文本文件Numbers.txt和下面的代碼編譯好,但我得到了Java.io.FileNotFoundException錯誤的程序運行時。我也嘗試輸入完整的文件路徑,但我可能做錯了。有任何想法嗎?Java.io.FileNotFoundException使用File對象

+0

這應該工作得很好,如果文件真的存在。文件名可能不正確。 – 2013-02-19 19:52:38

+1

您正在使用相對路徑,該路徑將相對於正在運行的Java程序的工作目錄進行解析。使用Java處理文件時,最好指定絕對路徑。 – Perception 2013-02-19 19:53:16

回答

2

確保您的文本文件在您的java文件 的文件夾中,因爲您使用了直接路徑。 並嘗試此代碼檢查,如果仍然無法正常工作。

BufferedReader read = new BufferedReader(new FileReader("yourTextFile.txt")); 
String line = read.readLine(); 

while(line !=null) 
{ 
    System.out.println(line); 
    line=read.readLine(); 
} 
}catch(Exception ex) 
{System.out.println(ex.getMessage());} 
+0

謝謝。這是剩下的文件夾中唯一沒有的文件。節目現在工作。非常感謝。 – user2088547 2013-02-19 20:13:22

1

嘗試增加

System.out.println("Full path is " + read.getCanonicalPath() 
        + ", canRead=" + read.canRead() 
        + ", exists=" + read.exists()); 

,然後看看是否你的文件系統上存在的完整路徑,以及是否根據canRead是可讀的。

如果文件是符號鏈接,則canRead可能會返回true,因爲即使鏈接指向的文件不可讀,符號鏈接也可以解析。要正確處理符號鏈接,您確實需要使用新的java.nio.file API。

+0

謝謝,這幫助我意識到上面的答案是錯誤的。 – user2088547 2013-02-19 20:13:52

相關問題