Безопасно ли получать только выделенные байты из массива байтов, полученного из GetBuffer?

У меня есть экземпляр MemoryStream, который закрыт (не спрашивайте, не могу это изменить, и это не такой уж плохой дизайн, как кажется на первый взгляд :). В любом случае я обнаружил, что могу взять byte [], используя что-то вроде:

MemoryStream ms = SomeClass.GetMemoryStream();
byte[] myData = ms.GetBuffer();

Пока все кажется просто великолепным, единственная проблема, с которой я столкнулся, заключается в том, что размер массива байтов, возвращаемого из GetBuffer (), изменен и он содержит нераспределенное пространство (байт) 0; Примерно так:

12,32,43,43,2,3,0,0,0,0,0,0,0

Мой вопрос: можно ли предположить, что я могу читать массив, пока не встречу первый 0? Вы знаете какой-либо случай, в котором будет (байт) 0 в середине данных? Данные представляют собой сообщение электронной почты MIME.

0
задан Pavel Donchev 18 November 2011 в 13:09
поделиться