Если ресурс, который вы хотите прочитать, включен в classpath вашего приложения (например, внутри jar, в папке WEB-INF/lib
, папке, переданной командой -cp
to java
и т. Д.), Выможно прочитать файл, используя метод getResourceAsStream класса Class
.
Предоставление примера для вашего дела с папками, такими как:
- main
- java
- resources
- yourconfig.properties
В вашем коде YourAnnotationParser
вы можете иметь:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("yourconfig.properties");
Если файл является вложенным:
- main
- java
- resources
- iamafolder
- yourconfig.properties
Итак:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("iamafolder/yourconfig.properties");
Кстати, это очень упрощенный ответ, код работает по общему сценарию, то, что он делает за кулисами, сложнее, чем «чтение файла»вне jar ", но чтобы понять его полностью, вам нужно посмотреть, как работают загрузчик классов java и classpath.
Если файл находится за пределами пути классов java, вы можете использовать класс File
или URL
один для чтения содержимого.