getResourceAsStream () возвращает поток, содержимое которого пусто - PullRequest
4 голосов
/ 17 марта 2011

У меня есть небольшой Java-проект в Eclipse.В проекте есть папка src и bin (типичная), и src добавляется в путь к классам.Я работаю на Windows.

Работает следующий вызов:

System.out.println(TestINI.class.getResource("happytest.ini"));

Печатает путь к файлу:

file:/D:/work/baton/Touch/JTouch/bin/com/interra/tests/happytest.ini

Я проверил, что содержимое ini-файла, упомянутого выше, имеет ожидаемое содержимое.

Но чтение из файла выглядит следующим образом:

InputStream is = TestINI.class.getResourceAsStream("happytest.ini");

дает мне входной поток, который не имеет содержимого.т.е. он возвращает файл с нулевыми байтами.

Мой Eclipse - 3,6-разрядный 64-битный Helios, работающий в Windows 7.

Поиск в Google выявил случаи, когда путь к ресурсу или поток ввода был нулевым, но это не так для меня.

Записи пути к классам следующие:

<classpathentry kind="src" path="src"/>
... other class path entries for libraries like ini4j
<classpathentry kind="output" path="bin"/>

Ответы [ 3 ]

1 голос
/ 18 марта 2011

Я опробовал ваш пример, и он работал для меня с getResource() и getResourceAsStream(). Я знаю, что это не обнадеживает.

В любом случае, интересно, что в вашем потоке нет контента, попробуйте это:

new FileInputStream(new File(TestINI.class.getResource("happytest.ini").toURI()));

Если вы читаете этот поток и нет содержимого, значит что-то не так с вашим файлом. Для тестирования я вызвал метод read() на Stream s.

0 голосов
/ 18 марта 2011

Это именно то, что сказал Джим Гаррисон - вы отредактировали файл в 'src' и прочитали из 'bin' ...

0 голосов
/ 18 марта 2011

Кажется, я понял проблему.Для файлов ini мое затмение открывало блокнот по умолчанию.Изменения, которые я сделал через блокнот в INI-файле, не отражались должным образом на стороне затмения.Сегодня, когда я редактировал файл в текстовом редакторе Eclipse, они правильно отражались в вызовах getResourceAsStream ().По сути, после редактирования через блокнот ресурс был не синхронизирован в затмении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...