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 осведомленным об изменениях.