Получить ресурс из банки - PullRequest
15 голосов
/ 30 сентября 2010

У меня есть jar с файлами:

myJar/res/endingRule.txt
myJar/wordcalculator/merger/Marge.class

В Marge.java у меня есть код:

<code>
private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";
....
InputStream inputStream  = getClass().getClassLoader().getResourceAsStream(ENDINGS_FILE_NAME);
.....</p>

<p>
Но после этого inputStream будет нулевым.Как работать с ресурсами?Почему ноль?

Ответы [ 4 ]

16 голосов
/ 30 сентября 2010

Чтобы получить файл внутри банки, используйте:

private static final String ENDINGS_FILE_NAME = "/res/endingRule.txt";
...
InputStream is = getClass( ).getResourceAsStream(ENDINGS_FILE_NAME);
6 голосов
/ 30 сентября 2010

Ваше имя выглядит неправильно - неверное расширение и неверный тип слеша:

private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";
1 голос
/ 30 сентября 2010

\ интерпретируется как escape-символ, а не как разделитель каталогов.Имя файла также выключено.Попробуйте:

private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";
0 голосов
/ 17 июня 2013

использование:

private static final String ENDINGS_FILE_NAME = "res\\endingRule.txt";
...