Получить ресурс из банки

У меня есть 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);
.....

But after this inputStream is null. How to work with resources? Why null?

Ответы

Ответ 1

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

private static final String ENDINGS_FILE_NAME = "/res/endingRule.txt";
...
InputStream is = getClass( ).getResourceAsStream(ENDINGS_FILE_NAME);

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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