我有以下的罐子如何从一个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