Свойства продолжают сводить меня с ума. Не могу сохранить это! "Файл не найден" - PullRequest
0 голосов
/ 24 июня 2011

эти свойства сводят меня с ума. Я читаю везде, что даже загрузка свойств не должна быть проблемой, просто используя:

Properties p = new Properties();
p.load(new FileInputStream("filename.properties");

Хотя в моем случае это действительно работает. Java не находит файл, который находится в каталоге классов! Вот почему я должен был использовать его с Assetmanager:

String defaultProfileProperties = "filename.properties";
Resources resources = this.getResources();
AssetManager assetManager = resources.getAssets();
final Properties properties = new Properties();

try {
    InputStream inputStream = assetManager.open(defaultProfileProperties);
    properties.load(inputStream);
} catch (IOException e) {
    System.err.println("Failed to open " + defaultProfileProperties + " property file");
    e.printStackTrace();
}

Помещение файла filename.properties в папку assets.

Ну, теперь я просто не могу сохранить файл свойств с помощью .store (out, comment) ... Я попытался использовать FileOutputStream с указанием пути либо «filename.properties», либо «assets / filename.properties». Ни один из них не работал. Я даже добавил косую черту тут и там, но ничто не помогает! Я не нахожу в Интернете никаких учебных пособий и не сталкиваюсь с той же проблемой!

Не могли бы вы просто помочь мне? Я думаю, это такая простая вещь, но я не понимаю, как ... бла

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Если вы откроете файл с помощью FileInputStream, тогда начальный каталог (относительный путь) будет основан на рабочем каталоге, когда вы запустили Java, а НЕ на classpath.Открытие файла с ресурсами будет ссылаться на записи classpath.

Вы пытались использовать полный путь при использовании FileInputStream ()?Попробуйте это и посмотрите, работает ли он, и если да, то вам нужно либо установить рабочий каталог при запуске и / или сослаться на ваш файл по относительному пути из стартового каталога.

0 голосов
/ 24 июня 2011

Попробуйте это:

    InputStream in = this.getClass().getResourceAsStream("filename.properties");
    Properties p = new Properties();
    p.load(in);
...