我有以下的罐子如何從一個Java類讀取文件,都是在同一個罐子
myjar.jar結構 - > COM - > MYProgram.class
-> file.txt
在MYProgram我試圖做的事:
getClass().getResourceAsStream("../file.txt")
我得到的NullPointerException當我嘗試讀取輸入流..
哪裏出問題了?
我有以下的罐子如何從一個Java類讀取文件,都是在同一個罐子
myjar.jar結構 - > COM - > MYProgram.class
-> file.txt
在MYProgram我試圖做的事:
getClass().getResourceAsStream("../file.txt")
我得到的NullPointerException當我嘗試讀取輸入流..
哪裏出問題了?
要麼使用
getClass().getResourceAsStream("/file.txt")
或
getClass().getClassLoader().getResourceAsStream("file.txt")
(ClassLoader.getResourceAsStream
始終以一個 「絕對」 資源名稱。)
我不相信航行了 「目錄層次結構」 的作品在getResourceAsStream
- 路徑必須是相對於給定的類,但不導航備份樹,或它必須是絕對開始。
嘗試的絕對路徑:
getClass().getResourceAsStream("/file.txt")
爲getResourceAsStream
的Javadoc說:
- 如果名字以 '/'( '\ u002f'),則絕對名稱的資源是「/」後面的名稱部分。
否則,絕對名稱是以下形式的:
modified_package_name/name
凡modified_package_name是該對象以「/」取代的包名「」 ( '\ u002e')。
這將會把你的路徑進入這個絕對路徑:
/com/../file.txt
我不認爲..
記號尊重。它從字面上尋找上述絕對路徑。
是的,這工作.. thnx – harshit 2011-03-29 17:39:08