Каково правильное расположение для хранения постоянных объектов?

#java #xml #persistence #store

#java #xml #сохранение #Магазин

Вопрос:

Я разрабатываю настольное приложение на Java среднего размера без использования базы данных. Я использую xml, сериализуемые объекты и т.д. для хранения данных пользователя / приложения, но каково правильное расположение для сохранения этих файлов (независимо от системы)?

Комментарии:

1. На мой взгляд, правильное расположение — это база данных.

Ответ №1:

Если вы действительно не хотите хранить их в базе данных, взгляните на Preferences API, он не зависит от платформы.

Ответ №2:

Почему вы не используете базу данных? Используйте базу данных файловой системы (например, hsqldb) и уровень объектно-реляционного отображения. Вероятно, вам даже не нужно будет писать файл сопоставления любого вида или произвольно делать ваши классы сериализуемыми.

Храните данные в %APPDATA%/appName Windows и, возможно ~/.appName , в Linux. User/Library/Application/appName может работать на компьютерах Mac.

Комментарии:

1. Вопрос все равно будет тем же, где вы храните файлы hsqldb.

2. …нет? Вы храните данные там, где, по словам выбранной вами операционной системы, приложения хранят данные.

3. В этом случае будет то же самое, используете ли вы (локальную) базу данных или нет. Хотя большинству API, будь то база данных или файлы, которые вы создаете самостоятельно, требуется путь в качестве входных данных, и вопрос в том, как вы получаете этот путь из программы Java.

Ответ №3:

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

Комментарии:

1. Это возможное решение, но я думаю, что не самое лучшее. В Unix это часто делается, но если вы работаете с Windows, в домашнем каталоге есть .Appdata-directory.