2012-01-12 135 views
0

我已經這樣做了:文件未發現異常

File inputPropertiesFile = new File("/Users/adrian/Documents/workspace/Ronan/src/watermarker/test"); 
InputStream propertiesStream = new FileInputStream(inputPropertiesFile); 

,但我得到這個異常:

java.io.FileNotFoundException: /Users/adrian/Documents/workspace/Ronan/src/watermarker/test (No such file or directory)  at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120)  

但該文件是在該位置fooor suure.And不empty.What那裏錯了嗎?

謝謝

+0

嘗試絕對路徑。或者確保你在一個可以找到給定相對路徑的文件的位置啓動程序。 – AHungerArtist 2012-01-12 14:02:10

+0

你真的可以訪問該文件嗎?你能說,從命令行「貓」嗎? 'FileNotFoundException'實際上是沒用的例外:/ – fge 2012-01-12 14:03:10

+0

可以粘貼'ls -l「/ Users/adrian/Documents/workspace/Ronan/src/watermarker/test」'命令的輸出嗎? – 2012-01-12 14:03:22

回答

0

該文件是否可以被您的進程讀取?試着改變它的權限

chmod 777 thefile

並重新運行。如果這有效,那麼你知道它的權限問題。更改這樣的權限可能不是一個永久性的解決方案,並且如果您在多用戶系統上,可能會帶來安全風險。但這是一個不同的問題...

+0

我懷疑他正在運行Linux給定的路徑。 – AHungerArtist 2012-01-12 14:03:34

+0

看起來像iOS,所以這可能工作 – 2012-01-12 14:04:36

1

也許你可以檢查文件是否可以訪問本程序?

如果文件不可訪問,也無法找到它,因此引發此異常。

1

是的,如果您嘗試在資源管理器中使用/ Users/adrian,則無法訪問該路徑。如果你使用C:/ Users/adrian,你會的。我相信java有同樣的問題

0

在Windows?也許你在D上運行你的代碼:而不是C :.如果是這樣放完整路徑「c:\ Users \ adrian ...」

它看起來像在Win7上的Eclipse工作區的默認路徑。如果是這樣,我在路徑中沒有「/ Documents /」。我有「/ Users/myname/workspace/projectName/src ....」。

0

環繞它由try-catch塊

try { 
     inputStream = new FileInputStream(propertiesFile); 
     prop.load(inputStream); 
    } catch (FileNotFoundException e1) { 
     getLog().error(e1); 
    } catch (IOException e) { 
     getLog().error(e); 
    }