Как мне преобразовать struct System.Byte byte [] в объект System.IO.Stream в C #? - PullRequest
668 голосов
/ 19 января 2011

Как мне преобразовать struct System.Byte byte[] в System.IO.Stream объект в C #?

Ответы [ 4 ]

1128 голосов
/ 22 января 2011

Самый простой способ преобразовать байтовый массив в поток - использовать класс MemoryStream:

Stream stream = new MemoryStream(byteArray);
314 голосов
/ 19 января 2011

Вы ищете метод MemoryStream.Write . Например, следующий код запишет содержимое массива byte[] в поток памяти:

byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);

Кроме того, вы можете создать новый , неизменяемый размер MemoryStream объект на основе байтового массива:

byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
29 голосов
/ 19 января 2011

Общий подход для записи в любой поток (не только MemoryStream) заключается в использовании BinaryWriter:

static void Write(Stream s, Byte[] bytes)
{
    using (var writer = new BinaryWriter(s))
    {
        writer.Write(bytes);
    }
}
4 голосов
/ 19 января 2011

Посмотрите на класс MemoryStream.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...