Существуют ли эквивалентные классы или функции для DataInputStream в Java для iPhone для чтения двоичной информации - PullRequest
1 голос
/ 31 июля 2009

Java предоставляет классы DataInputStream и DataOutputStream для чтения / записи двоичных данных (в виде байтов) структурированным способом, таким как DataInputStream.readInt () / readLong () / read (byte []) из потока байтов; аналогично для DataOutputStream.

Есть ли в iPhone эквивалентные классы или функции?

Ответы [ 2 ]

2 голосов
/ 31 июля 2009

NSData сделает то, что вы ищете, я думаю: Базовая ссылка на класс данных

1 голос
/ 31 июля 2009

Ram,

Я чувствую твою боль. Исходя из земли Java, многие вещи будут ощущаться отсталыми или отсутствующими. NSData - это ваша отправная точка, но она работает больше как потоковые классы ByteArray, поскольку содержит материализованные данные. Также помните, что нет никаких функций форматирования для сериализации / десериализации данных, записанных / прочитанных в / из источника. Другими словами, вы не найдете здесь readInt (), readShort (). Сделайте это: Cmd + Shift +? из XCode, чтобы вызвать справку, введите NSData, чтобы вызвать документы для нее, затем нажмите ссылку для руководства по двоичному программированию. Решив проблему, которая может оказаться именно тем, что вы собираетесь решить, я предупрежу вас о порядке чтения данных на iPhone из потока, написанного Java. Вам придется менять порядок байтов от низкого до высокого. Другими словами, если вы используете DataOutputStream.writeInt () на одном конце (в чем-то вроде сервлета), то попробуйте отобразить int поверх данных, считанных в объект NSData, а затем поменять местами порядки байтов.

...