Сохранение объекта в файл с использованием сериализации в Java - PullRequest
1 голос
/ 26 сентября 2010

У меня есть большое количество данных, сохраненных в Collection.
Я хотел бы сохранить эти данные в файл.Является ли хорошей идеей использовать сериализацию?
Или мне следует использовать собственный формат для сохранения данных или сохранить его, например, в формате XML?
(элементы в Collection являются пользовательскими классами. Нужно ли мнереализовать метод, который сериализует объекты?)

Ответы [ 3 ]

1 голос
/ 26 сентября 2010

Вы можете использовать оба метода. Я бы предпочел сохранить их в формате XML, поскольку вероятность повреждения данных в файле XML меньше. Но если вы хотите сохранить пользовательский класс в файл данных с использованием сериализации, вам необходимо реализовать интерфейс Serializable в этих пользовательских классах.

0 голосов
/ 26 сентября 2010

Я бы не записывал сериализованный класс на диск.Как только JVM или какие-либо библиотеки изменятся, это может оказаться бесполезным.Это означает, что файл, созданный в одной системе, может не работать в другой!

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

0 голосов
/ 26 сентября 2010

Нужно ли реализовывать метод, который сериализует объекты?

Чтобы сериализовать объект, вы должны реализовать интерфейс Serializable ИЛИ предоставить реализацию для следующих методов, ЕСЛИ a 'требуется специальная обработка в процессе сериализации и десериализации.

- private void writeObject(ObjectOutputStream out) throws IOException;
- private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;

Более подробную информацию о сериализации можно найти на сайте оракула.Вы можете посетить http://java.sun.com/developer/technicalArticles/Programming/serialization/, чтобы начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...