Я запутался getResourceAsStream()
;Где находится файл getResourceAsStream (файл)?
Мой пакет структура выглядит следующим образом:
\src
|__ net.floodlightcontroller // invoked getResourceAsStream() here
|__ ...
|__ resources
|__ floodlightdefault.properties //target
|__ ...
И я хочу, чтобы читать из floodlightdefault.properties. Вот мой код, лежащий в net.floodlightcontroller
упаковке:
package net.floodlightcontroller.core.module;
// ...
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("floodlightdefault.properties");
Но это не удалось, получив is == null
. Поэтому мне интересно, как именно getResourceAsStream(file)
ищет file
. Я имею в виду, он работает через определенные PATH
s или в определенном порядке?
Если да, то как настроить места, которые ищет getResourceAsStream()
?
Thx!
Вы добавили каталог ресурсов в classpath при запуске вашего кода? Вообще говоря, поведение getResourceAsStream зависит от реализации ClassLoader. –
Вообще говоря, это также будет зависеть от того, что это означает. – Radiodef
Чтобы исправить вашу нулевую проблему, сначала я вижу две вещи. Во-первых, похоже, вам просто нужно изменить свой каталог на '' resources/floodlightdefault.properties''. Во-вторых, метод может искать ресурс внутри вашего каталога сборки, а структура каталогов, которую вы указали, является исходной папкой проекта IDE. Хотя, конечно, если вы добавили ресурсы в проект, среда IDE должна автоматически копировать файлы в каталог сборки. В быстрых тестах с Netbeans мои ресурсы появляются только в null, если я удаляю их из папки _both_ build и src. – Radiodef