Как создать.INI файл для хранения некоторых настроек в Java?

Я просто добавил float:left в div, и он работал

21
задан Lipis 14 October 2008 в 13:25
поделиться

5 ответов

Можно определить местоположение каталога приложения с помощью ClassLoder. См.: Java: нахождение каталога приложения . Вместо файл.INI , используйте файл .properties - можно загрузить и сохранить это через эти Свойства класс.

, Поскольку другие отметили, Вы не должны писать пользовательские настройки в свой каталог приложения. Что, если у пользователя нет доступа для записи к каталогу приложения? Что, если Ваше приложение используется многочисленными пользователями в той же системе одновременно? Ни одна из этих ситуаций не необычна, даже в Windows.

Вы могли бы все еще хотеть загрузить некоторые настройки из каталога приложения - возможно, администратор настроил настройки по умолчанию там.

А общая конвенция состоит в том, чтобы сохранить пользовательские настройки к корневому каталогу пользователя:

/home/user/.eclipse
C:\Documents and Settings\User\.eclipse

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

public static File getSettingsDirectory() {
    String userHome = System.getProperty("user.home");
    if(userHome == null) {
        throw new IllegalStateException("user.home==null");
    }
    File home = new File(userHome);
    File settingsDirectory = new File(home, ".myappdir");
    if(!settingsDirectory.exists()) {
        if(!settingsDirectory.mkdir()) {
            throw new IllegalStateException(settingsDirectory.toString());
        }
    }
    return settingsDirectory;
}

В подобных Unix операционных системах, запуская имя каталога с периода (" .myappdir") сделает каталог скрытым. В Windows это будет расположено ниже Мои Документы , таким образом, пользователи не будут видеть каталог, если они не пойдут, ища его.

22
ответ дан 29 November 2019 в 21:07
поделиться

Если настройки только записаны Вашим приложением (а не изменены вручную), рассмотрите использование эти предпочтения API .

8
ответ дан 29 November 2019 в 21:07
поделиться

Вы не должны хранить временные файлы в каталоге установки приложения. Помните, у пользователя, запускающего приложение, не может быть доступа для записи к тому каталогу. Самое безопасное место для помещения материала как этот находится в папке C:\Documents and Settings\username\Application Data\ApplicationName (корректирующий имя по мере необходимости).

Тем не менее однако, я, вероятно, сохранил бы тот тип материала в реестре вместо файла на их компьютере. (Но, это - просто я.)

1
ответ дан 29 November 2019 в 21:07
поделиться

Обычно программисты Java не используют .ini файлы, но .properties файлы (другой формат). Можно использовать java.lang. Класс свойств как хорошая программная обертка, если Вы делаете.

, В то время как Вы можете , получают местоположение Вашего файла банки путем вызова getProtectionDomain () .getCodeSource () .getLocation () на .class участнике класса, я не делаю , рекомендуют сделать это.

я вместо этого записал бы файл в каталог System.getProperty("user.home") - корневой каталог пользователей, или если это является действительно временным, System.getProperty("java.io.tmpdir")

1
ответ дан 29 November 2019 в 21:07
поделиться

Это зависит, должен ли Ваш ini быть человеческим читаемый/перезаписываемый при нормальных обстоятельствах. В противном случае можно использовать файл свойств, а не ini файл, и сохранить его в "пользовательском" каталоге.

Что касается нахождения файла банки, необходимо было бы найти ClassLoder для класса известным быть загруженными из банки, проверить, что это был соответствующий тип ClassLoder (т.е. что это действительно загруженный из банки), и можно извлечь путь из этого. Я могу, вероятно, откопать код, чтобы сделать это, если это действительно, что Вы хотите. Я не обязательно рекомендовал бы это.

РЕДАКТИРОВАНИЕ user.home свойство даст Вам пользовательский каталог, который можно безопасно использовать.

1
ответ дан 29 November 2019 в 21:07
поделиться
Другие вопросы по тегам:

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