Как лучше всего хранить объекты на диске в Java?

Я хочу сохранить ЛЮБОЙ вид объектов в файле и восстановить его в любое время.

Я использую это для объектно-ориентированного хранилища, которое хочу создать. Сериализация не является решением, потому что многие классы не реализуют Serializable.

Спасибо


person Horatiu Jeflea    schedule 20.07.2010    source источник
comment
Возможный дубликат stackoverflow .com / questions / 239280 /?   -  person Federico klez Culloca    schedule 20.07.2010


Ответы (2)


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

Если бы вы все равно хотели попробовать, вы могли бы использовать отражение, чтобы получить содержимое объекта и поместить его в файл. Но это было бы очень плохой идеей.

person cHao    schedule 20.07.2010

Если объекты ваши собственные, просто реализуйте Serializable. Если они принадлежат другим, уговорите их поступить так же или используйте собственный механизм сериализации (возможно, с использованием отражения).

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

person PaulJWilliams    schedule 20.07.2010