2010-07-20 3 views
0

Я хочу сохранить любой вид объектов в файле и восстановить его в любое время.Каков наилучший способ хранения объектов на диске в java?

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

Спасибо

+0

Возможный дубликат http://stackoverflow.com/questions/239280/which-is-the-best-alternative-for-java-serialization? –

ответ

2

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

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

0

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

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

Смежные вопросы