Eclipse getResourceAsStream возвращает значение null
Я не могу получить getResourceAsStream, чтобы найти файл. Я поместил файл в каталог верхнего уровня, целевой каталог и т.д. И т.д., И попробовал его с "/" спереди. Каждый раз он возвращает null.
Любые предложения? Спасибо.
public class T {
public static final void main(String[] args) {
InputStream propertiesIS = T.class.getClassLoader().getResourceAsStream("test.txt");
System.out.println("Break");
}
}
Ответы
Ответ 1
Поместите свой файл test.txt в тот же каталог, где java файл вашего класса (тот же пакет). Затем используйте
T.class.getResourceAsStream( "test.txt" );
Это работает, потому что eclipse автоматически копирует файл как ресурс в путь к классам. При использовании командной строки вы должны сделать это вручную.
Ответ 2
Вам не нужно добавлять эти файлы в тот же каталог, чтобы заставить его работать.
Я получал этот симптом, когда создавал новый Пакет и Исходную папку для проведения тестов на junit. Тесты потерпят неудачу, потому что getResourceAsStream возвращает null.
Вот как это исправить:
Щелкните правой кнопкой мыши класс (в моем случае, новый тестовый класс junit) в представлении Project Explorer Explorer Eclipse
Путь сборки → Настроить путь сборки → Путь сборки Java → вкладка источника → Добавить папку
Выберите папку, в которой хранятся ваши файлы.
Ответ 3
Иногда вам нужно явно указать eclipse, какие типы файлов копировать из исходной папки в папку распространения (классов).
У меня есть Eclipse SDK, версия: 3.7.1, Build id: M20110909-1335, Indigo и в этом
я сделал следующие изменения.
Проект → Свойства → Путь сборки Java → Источник (вкладка) → Включено (элемент списка) → Изменить (кнопка), чтобы добавить */. txt в существующую */. java.
Ответ 4
Также убедитесь, что ваш файл не соответствует шаблону Предпочтение > Java > Компилятоp > Строкa > Выходные данные > Отфильтрованные ресурсы:.
Например, если вы установите *. txt в этом поле, вы не получите test.txt для вывода сборки.
Ответ 5
Помещение моей /resources/folder в папку /bin/folder решило эту проблему для меня.
Ответ 6
Старый вопрос, но у меня была такая же проблема, и ни один из ответов не работал у меня (или я не понимал их).
В Eclipse обновить каталог проекта, чтобы Eclipse знал, что новый файл был добавлен в ресурсы. Для этого щелкните правой кнопкой мыши по каталогу проекта (самый верхний) в представлении проводника пакета, а затем нажмите "Обновить". То же самое, если вы редактируете существующий файл ресурсов из внешнего eclipse: обновляйте, чтобы сделать eclipse осведомленным об изменениях.