Используя Java, какой самый простой способ записи файла на диск в формате, который легко читается другими приложениями - PullRequest
2 голосов
/ 23 февраля 2012

Меня попросили «записать файл на диск в формате, который легко читается другими приложениями. Не требуется, чтобы файл был читаемым человеком».Данные, которые должны быть записаны в файл, представляют собой комбинацию целочисленных, строковых переменных и переменных даты.

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

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

Нет, это не домашняя работа.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2012

Это довольно смутное требование. Если другие приложения также написаны на Java, то сериализация Java может быть лучшим подходом.

РЕДАКТИРОВАТЬ: @leftbrain & mdash; В ответ на ваш комментарий, я думаю, я бы склонялся к XML; он был разработан для поддержки базового взаимодействия между приложениями. Три вида упомянутых данных (целое число, строка и дата) обычно могут быть представлены точно без специальных уловок, и существует хорошая поддержка обработки XML на большинстве языков программирования. Однако каждый тип данных (в резюме) может представлять проблемы. Я бы спросил следующее:

  1. Какой диапазон целочисленных значений необходимо поддерживать?
  2. Какие предположения (если таковые имеются) могут быть сделаны относительно строковых данных? Нужно ли поддерживать полный набор символов Юникода?
  3. Какой диапазон дат и какие календарные системы необходимо поддерживать?
  4. Есть ли четко определенная структура данных?
  5. Является ли производительность (с точки зрения времени и / или памяти) операции записи или чтения проблемой? Что значит «легко читаемый»?
1 голос
/ 24 февраля 2012

Что интервьюер ищет, чтобы выяснить, какой у вас опыт в этой области или что вы могли бы рассмотреть при реализации такого решения.Это открытый вопрос, на который нет правильного ответа, скорее это зависит от требований.

В некоторых предложениях используется сериализация структуры данных.Вот несколько http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking

Использование базы данных SQL или NoSQL.Вот некоторые базы данных NoSQL.http://nosql -database.org /

Записать данные на диск с помощью DataOutputStream (IO), кучи или прямых байтовых буферов или файлов отображения памяти.Это может хорошо работать для простых случаев, таких как предложенный в вопросе.Поскольку ваши требования усложняются, вы можете рассмотреть другие варианты.

0 голосов
/ 23 февраля 2012

Если вам нужно поддерживать несколько языков, вы можете использовать xml.

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