2013-02-08 82 views
0

類似問題處理C:驅動器上的文件,其中對文件路徑進行硬編碼是可接受的答案。此應用程序是移動的,並且對文件路徑進行硬編碼是不實際的。FileNotFoundException文件存在於與程序相同的文件夾中

我想通過掃描儀導入一個文本文件,其中包含一個字符串列表,每行15個字符,每行1個。線條很多。文件名是a.txt

我把它用

File data = new File("a.txt"); 
Scanner in = new Scanner(data); 

重複下面 「b.txt」 的臺詞,使用不同的對象名稱。

然而,當我建立的程序,我得到(使用在Jcreator IDE)這個錯誤日誌:

--------------------Configuration: <Default>-------------------- 
E:\Simple Encryption\Simple_Encryption.java:17: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown 
    Scanner in = new Scanner(data); 
       ^
E:\Simple Encryption\Simple_Encryption.java:18: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown 
    Scanner numsIn = new Scanner(nums); 
        ^
2 errors 

Process completed. 

程序是文件夾E:/Simple Encryption/,其中包含以下文件和文件夾:

  • Simple_Encryption.java
  • Simple_Encryption.class
  • lock.png(未使用)
  • A.TXT
  • b.txt(同樣的錯誤a.txt進口,下面只是一條線)
  • /圖片(文件夾,包含的icon.png)

沒有什麼別的文件夾中。我無法硬編碼文件路徑,因爲在不同的計算機上,它具有不同的驅動器名稱,並且稍後將在不同的文件夾下分發。 (這裏(學校),這是E:驅動器上,在國內它是J:驅動器,並在工作中它是G:驅動器上。)

雖然我已經從現有的錯誤得到幫助,我需要進口在該程序啓動,而不是隻是跳過它。該文件以當前的形式存在,並且程序在沒有它的情況下不能運行。

什麼是造成此錯誤?我能做些什麼來防止這種情況發生?

回答

1
E:\Simple Encryption\Simple_Encryption.java:17: unreported exception 
java.io.FileNotFoundException; must be caught or declared to be thrown 

至於你的異常說你需要使用試戴catch塊

try { 
    Scanner numsIn = new Scanner(nums); 
catch (FileNotFoundException e) { 
    // do something 
} finally { 
    if (numsIn != null) numsIn .close(); 
} 

OR

你需要拋出該異常調用雖然方法

public static void xxxx() throws FileNotFoundException { 
    // do something 
} 
1

的問題並不是拋出的異常,但事實是, stuctor被宣佈爲拋出FileNotFoundException檢查異常。

public Scanner(File source) throws FileNotFoundException 

由於它是一個檢查異常,它必須由程序員處理,因爲它被用來表示可能發生的事情。

所以,你必須用他們在一個try/catch聲明:

Scanner in = null; 
try { 
    in = new Scanner(file); 
} 
catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
0

至於你說該文件存在,但它說,它無法找到該文件。試試這個:

System.out.println(data.getAbsolutePath()); 

這應該讓你知道它的確切位置是要找的文件,然後你可以調整應用程序,而無需使用完整路徑

相關問題