Android Чтение изображения в массив байтов и последний байт изображения

Андроид:

У меня есть два массива байтов, один массив байтов растрового изображения и другой массив байтов String. Я объединил эти два байтовых массива в третий.

Я запишу 3-й байтовый массив в хранилище.

Когда я читаю это изображение, созданное из комбинированного массива байтов изображения и строки, я хочу знать в байте [], где заканчиваются байты изображения и где начинаются байты строки.

Как узнать байтовое представление конца байта изображения? или начало строкового байта?

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


person d-man    schedule 04.02.2012    source источник


Ответы (1)


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

  • Длина изображения (вероятно, 4 байта — для простоты используйте DataOutputStream)
  • Данные изображения
  • Текстовые данные

(Кроме того, я предлагаю вам явно записать текстовые данные как UTF-8 и прочитать их как UTF-8. Или, конечно, вы можете просто использовать DataOutputStream.writeUTF и DataInputStream.readUTF...)

person Jon Skeet    schedule 04.02.2012
comment
Первые четыре байта я выделил для int, который содержит длину изображения, но когда я пытаюсь записать на диск из-за исключения первых четырех байтов указателя NULL, я вызываю этот метод для вставки изображения MediaStore.Images.Media.insertImage - person d-man; 04.02.2012
comment
@Faisalkhan: Ну, предположительно, у вас где-то есть нулевая ссылка, но по этому трудно сказать. Возможно, вам следует начать новый вопрос со всем соответствующим кодом. - person Jon Skeet; 04.02.2012