2010-09-14 2 views
2

tldr: Я новичок в программах с постоянными данными и ищу правильный способ сохранения/загрузки файлов. Может кто-то указать мне верное направление?Сохранение классов и объектов в файл (Java)

Я беру на себя проект, который предполагает значительную экономию и загрузку файлов между двумя связанными системами. Упрощенная, есть одна программа, которая функционирует как «строитель» для разработчиков, а другая - «интерфейс» для клиентов.

В «строителе» разработчики имеют функции для определения элементов и их возможных свойств, с которыми клиенты могут взаимодействовать в интерфейсе. Например, разработчик может создать элемент под названием «автомобиль», который может иметь свойства цвета, модели и скорости; а также элемент под названием «дом», который имеет размеры, цвет. Он может создавать любое количество предметов, которые могут быть разнообразными, и каждый из них будет иметь несколько общих свойств (имя, цвет), а также множество различных свойств.

В интерфейсе клиенты могут выбирать любое количество предметов в своем мире. То есть, они могут взять 2 машины и 1 дом и отдельно определить их свойства, чтобы один из автомобилей был быстрым красным хотрод, другой - Медленным белым ваном, а в доме Браун и 3x2.

как автомобиль, так и дом являются экземплярами предметов, но клиент дополнительно указал 2 разных экземпляра автомобиля.

В настоящее время я сохраняю различные экземпляры (автомобиль, дом и т. Д.) В текстовые файлы, и это, кажется, работает хорошо, но я уверен, что должен быть лучший способ (особенно, поскольку я предполагаю, что клиентский интерфейс будет запущен на Android). Может ли кто-нибудь указать мне в правильном направлении (-ах) или на какой-нибудь материал, который поможет мне сделать выбор?

ответ

3

Один вариант - использование двоичной сериализации Java. Я бы лично избегал этого варианта.

Существует множество других рамок для сериализации. Например, я портировал Protocol Buffers рамки Google, на C#, так что я обычно смещена в пользу того, что - но есть много других вариантов тоже, такие как:

Эти варианты обычно имеют преимущества с точки зрения:

  • Портируемость флористику г платформ (рассмотреть, если вы хотите построить iPhone или Windows Phone 7 приложений в будущем)
  • прямой и обратной совместимости
  • Human читаемости (или легкое преобразование в человеческом формате)
  • Некоторые из них очень компактны , тоже

Разумеется, двоичная сериализация Java делает простой путь очень легким, когда он работает, но это может быть боль другими способами. Просто мой опыт.

+0

красиво суммированы. Я хотел бы добавить файл CSV и DB, чтобы сохранить его. –

+0

Сериализацию следует избегать, поскольку она не читается человеком. Если по некоторым причинам у вас есть недопустимый файл, восстановить данные можно с помощью сериализации. Это та же проблема в БД, если вы используете Blob. – etiennepeiniau

0

Serialization. Вам нужно будет проверить, как вы будете получать доступ к файлу/конвертеру на Android.

1

Базы данных - отличные места для размещения постоянных данных.

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