Пожалуйста, прочитайте DataInputStream из Руководства Android для разработчиков подробно.
Потоки ввода и вывода обрабатываются в чистых байтах,
Android также предоставляет методы для чтения кусков байтов и создания стандартных типов данных.
Правильный способ получения данных:
byte[] readStream = new byte[LENGTH];
int howManyBytesInStream;
howManyBytesInStream = is.read(readStream);
Необходимые данные хранятся в readStream и
howManyBytesInStream - количество фактически прочитанных байтов.