Временный файл Java поверх новых сессий проекта - PullRequest
0 голосов
/ 07 февраля 2012

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

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Вы можете взглянуть на следующее:

http://www.mindspring.com/~mgrand/java-system-properties.htm

Из них я видел следующее:

user.home
user.dir
java.io.tmpdir

используется длявременные файлы.Тем не менее, я бы предположил, что user.dir будет наиболее безопасным для использования, тогда как user.home будет наиболее распространенным.

РЕДАКТИРОВАТЬ: Кажется, что обычной практикой является использование user.home для файлов, которые будут повторно использоваться вашим приложением, при запуске и перезапуске, в то время как user.dir чаще используется для временных файлов.

Итак, я рекомендую использовать:

System.getProperty("user.home");

Поскольку у вашего java будут права на чтение и запись, вы никогда не ошибетесь.

0 голосов
/ 07 февраля 2012

Если вам нужно только сохранить настройки, вам вообще не нужен файл, и вы должны использовать Preferences API . Не нужно беспокоиться о разрешениях, кросс-совместимости и т. Д.

0 голосов
/ 07 февраля 2012

Используйте System.getEnv ("APP_DATA"), если это какое-то предпочтение пользователя Используйте System.getEnv ("LOCA_APP_DATA"), если он также связан с локальной системой (т. Е. С компьютером, на котором он работает). Помните, что это не работает на других платформах, кроме Windows. Чтобы иметь что-то действительно кроссплатформенное, вы можете использовать System.getProperty ("user.home"), который указывает на домашний каталог пользователя.

...