我有文件jar:
myJar/res/endingRule.txt
myJar/wordcalculator/merger/Marge.class
在Marge.java中我有代码:
private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";
....
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(ENDINGS_FILE_NAME);
.....
但是在这个inputStream为null之后。如何使用资源?为什么空?
答案 0 :(得分:16)
要检索jar中的文件,请使用:
private static final String ENDINGS_FILE_NAME = "/res/endingRule.txt";
...
InputStream is = getClass( ).getResourceAsStream(ENDINGS_FILE_NAME);
答案 1 :(得分:6)
您的名字看起来不对 - 错误的扩展程序和错误的斜杠:
private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";
答案 2 :(得分:1)
\
被解释为转义字符而不是目录分隔符。文件名也是关闭的。尝试:
private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";
答案 3 :(得分:0)
使用:
private static final String ENDINGS_FILE_NAME = "res\\endingRule.txt";