I have following structure in jar
myjar.jar -> com -> MYProgram.class
-> file.txt
In MYProgram i am trying to do:
getClass().getResourceAsStream("../file.txt")
I am getting NullpointerException when i try to read the inputstream..
Where is it going wrong ?
Either use
getClass().getResourceAsStream("/file.txt")
or
getClass().getClassLoader().getResourceAsStream("file.txt")
(ClassLoader.getResourceAsStream always takes an "absolute" resource name.)
I don't believe navigating up the "directory hierarchy" works in getResourceAsStream - the path either has to be relative to the given class but without navigating back up the tree, or it has to be absolute to start with.
Try the absolute path:
getClass().getResourceAsStream("/file.txt")
The Javadoc for getResourceAsStream says:
- If the name begins with a '/' ('\u002f'), then the absolute name of the resource is the portion of the name following the '/'.
Otherwise, the absolute name is of the following form:
modified_package_name/nameWhere the modified_package_name is the package name of this object with '/' substituted for '.' ('\u002e').
This would turn your path into this absolute path:
/com/../file.txt
I don't think the .. notation is respected. It literally looks for the above absolute path.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With