2009-06-30 3 views
2

Я хочу прочитать файл свойств в моем классе java.Файл свойства в java

для этого я написал:

try { 
      Properties property = new Properties(); 
      property .load(new FileInputStream("abc.properties")); 
      String string = property.getProperty("userName"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

я поместил свой файл abc.properties в одном пакете, где мой Java класс находится. Но я получаю исключение FileNotFound.

Пожалуйста, дайте мне знать, как указать путь к файлу свойств.

Спасибо и наилучшими пожеланиями

ответ

6

FileInputStream будет искать файл в «рабочей директории» вашей программы, а не в том же пакете, что и ваш класс.

Чтобы получить файл свойств из одного и того же пакета, вам необходимо использовать getClass(). GetResourceAsStream ("abc.properties").

+0

Конечно работает, что только если abc.properties на самом деле в пакете по умолчанию? Вам нужно запросить «my/package/abc.properties» –

+0

Нет, это работает. Путь относится к классу. – Thilo

+0

Нет, он будет загружен относительно класса, который представлен getClass(). – skaffman

1

Если файлы свойств находятся рядом с вашим файлом класса, вы не должны использовать FileInputStream, но Class.getResourceAsStream.

property.load(getClass().getResourceAsStream("abc.properties")); 

Это будет работать, если вы упакуете все как файл jar.

0

пусть говорят ур класс TestClass то ур код должен измениться, чтобы,

InputStream input = TestClass.class.getResourceAsStream("abc.properties"); 
property.load(input);