Есть ли лучший способ ... (Java, сохранение данных) - PullRequest
0 голосов
/ 20 сентября 2011

В настоящее время я написал небольшую программу для менеджера на работе.Он вводит номер счета и создает его в кнопке, идущей вниз по строке.Затем вводит дату утверждения и создает ее в метке (в соответствии с созданной кнопкой).Наконец, создает метку для даты истечения срока действия (30 дней спустя) (и снова в режиме онлайн с созданной кнопкой).

Сохраняет эти данные в 3 файлах (1 для кнопки, 1 для первой меткии один для второго лейбла).Прямо сейчас я использую «ObjectOutputStream» для сохранения списков кнопок / меток.Когда программа открывается, она перезагружает все данные из файлов и «перепечатывает» их на экран.Программа также дает пользователю возможность удалять RO, в этом случае я перезаписываю файлы данных за вычетом удаленного RO.

Мне просто интересно, есть ли лучший способ сделать все это и если я 'Я трачу свое время, используя этот подход.

Ответы [ 2 ]

3 голосов
/ 20 сентября 2011

Я бы предпочел более многократно используемый формат данных по сравнению с сериализацией Java, когда целью является сохранение данных на длительный срок.

Сериализация отлично подходит для отправки полных объектов по сети или быстрого / временного сохранения полных объектов на диске, покаJVM должен быть перезапущен или временно нуждается в большем количестве памяти и так далее.Тем не менее, это не так хорошо для сохранения данных в долгосрочной перспективе.Когда вы изменяете / обновляете ваши классы, содержащие данные, существующие данные будут непригодны для использования.

Рассмотрите XML (в сочетании с JAXB) или JSON (в сочетании с Gson) или встроенную базу данных SQL (в сочетании с JDBC).Это позволяет вам легче и более детально контролировать обратную совместимость, а также возможность многократного использования другими программами / языками.

2 голосов
/ 20 сентября 2011

Вы должны сохранять данные, а не компоненты.Можете ли вы создать кнопки, метки и т. Д. При загрузке и сохранить только номера счетов-фактур, дату утверждения и дату истечения срока действия?

Кроме того, вы можете хранить все данные в массиве или хэш-карте и сохранять только этот объект,а не тысячи мелких предметов.

...