Обработка полученных данных из сокета - PullRequest
0 голосов
/ 09 декабря 2010

Я занимаюсь разработкой приложения для сокетов, и мое приложение должно получать XML-файл через сокет.Размер полученных XML-файлов варьируется от 1 до 100 КБ.Теперь я думаю о сохранении данных, которые я получил, во временный файл, а затем передать их анализатору xml.Я не уверен, что это правильный способ сделать это.

Другой вопрос: если я хочу сделать, как упомянуто выше, я должен передать объект файла или путь к файлу парсера xml?

Заранее спасибо,

С уважением

Ответы [ 3 ]

2 голосов
/ 09 декабря 2010

Просто отправьте это прямо парсеру.Это то, что делают браузеры.Добавление временного файла стоит вам времени и пространства без реальной выгоды.

0 голосов
/ 09 декабря 2010

Вам не нужно хранить данные из сокета в каком-либо файле. Просто прочитайте все DataInputStream в байтовый массив, и вы сможете делать все, что вам нужно. Например. при необходимости создайте String с вводом xml для подачи синтаксического анализатора. (Я предполагаю, что сокеты TCP).
Если есть предшествующие данные, вы пропускаете их, чтобы передать фактические данные XML в анализатор.

0 голосов
/ 09 декабря 2010

Как вы думаете, будет ли полезно разместить BufferedReader вокруг любого входного потока, который у вас есть? Он не поместил бы его во временный файл, но позволил бы вам привязаться к этим данным. Вы можете установить нужный размер BufferedReader.

Вы написали свой XML-парсер? Если вы этого не сделали, что он примет в качестве параметра? Если вы написали это, вы спрашиваете об эффективности. То есть какой объект, путь или файл должен запрашивать ваш синтаксический анализатор, чтобы быть наиболее эффективным?

...