Загрузка файла свойств от пакета Java

109
задан Joachim Sauer 28 August 2012 в 20:21
поделиться

3 ответа

При загрузке Свойств из Класса в пакете com.al.common.email.templates можно использовать

Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();

(Добавьте всю необходимую обработку исключений).

, Если Ваш класс не находится в том пакете, Вам нужен к aquire InputStream немного по-другому:

InputStream in = 
 getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");

Относительные пути (те без продвижения '/') в getResource() / getResourceAsStream() средний, что ресурс будет искаться относительно каталога, который представляет пакет, в котором находится класс.

Используя java.lang.String.class.getResource("foo.txt") искал бы (несуществующий) файл /java/lang/String/foo.txt на пути к классу.

Используя полный путь (тот, который запускается с '/') означает, что текущий пакет проигнорирован.

232
ответ дан Eric Leschinski 24 November 2019 в 03:19
поделиться

Принятие Вашего использования эти Свойства класс, через загрузка метод, и я предполагаю, что Вы используете ClassLoder getResourceAsStream для получения входного потока.

, Как Вы передающий на имя, кажется, что это должно быть в этой форме: /com/al/common/email/templates/foo.properties

2
ответ дан Sumit Singh 24 November 2019 в 03:19
поделиться

Чтобы добавить к ответу Иоахима Зауэра, если вам когда-нибудь понадобится сделать это в статическом контексте, вы можете сделать что-то вроде следующего:

static {
  Properties prop = new Properties();
  InputStream in = CurrentClassName.class.getResourceAsStream("foo.properties");
  prop.load(in);
  in.close()
}

(Обработка исключений опущена, как и раньше.)

48
ответ дан 24 November 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: