2016-07-17 41 views
-1

我不明白,爲什麼在我的情況下,File file = new File()無法讀取現有的文件。JAVA java.io.File讀取文件

這是代碼:

File tempDir = new File("imp_temp"); 
File sourceFile = new File(tempDir.getAbsolutePath() + File.separator + "Jellyfish.jpg"); 

logger.info(sourceFile.length()); 
logger.info(sourceFile.getAbsoluteFile()); 
logger.info(sourceFile.canRead()); 
logger.info(sourceFile.isFile()); 

文件 'Jellyfish.jpg' 是100%存在在那裏,我可以看到它在我的瀏覽器窗口。 但是那是我在日誌中:

2016-07-17 17:38:13,328 INFO [http-apr-8080-exec-5] main.IndexController (IndexController.java:201) - 0 
2016-07-17 17:38:13,329 INFO [http-apr-8080-exec-5] main.IndexController (IndexController.java:202) - C:\Users\slipo\IdeaProjects\testSpring\tomcat9\bin\imp_temp\Jellyfish.jpg 
2016-07-17 17:38:13,329 INFO [http-apr-8080-exec-5] main.IndexController (IndexController.java:203) - false 
2016-07-17 17:38:13,329 INFO [http-apr-8080-exec-5] main.IndexController (IndexController.java:204) - false 

爲什麼java.io.File無法看到這個文件?

+1

確定它在'bin'文件夾而不是'src'中?順便說一句,你可能更喜歡使用'新的文件(tempDir.getAbsolutePath(),「Jellyfish.jpg」);'因爲這避免了使用'File.separator'(這已經比'「/」'或''\ ') – Tom

+0

你當然不是'src' – user1935987

+0

你能從文件屬性菜單''(右鍵點擊文件 - >屬性 - >安全性)'''安全'選項卡發佈圖像。你的用戶有什麼設置? –

回答

0

您正在使用Maven?你應該使用ClassLoader,並把文件放在/ resources