Question Comment puis-je convertir struct System.Byte byte [] en un objet System.IO.Stream en C #?


Comment convertir une structure System.Byte  byte[] à un System.IO.Stream objet en C #?


547
2018-01-19 14:08


origine


Réponses:


Le moyen le plus simple de convertir un tableau d'octets en un flux utilise le MemoryStream classe:

Stream stream = new MemoryStream(byteArray);

948
2018-01-22 18:12



Vous cherchez le MemoryStream.Write méthode. Par exemple, le code suivant écrira le contenu d'un byte[] tableau dans un flux de mémoire:

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

Alternativement, vous pourriez créer un nouveau, non redimensionnable MemoryStream objet basé sur le tableau d'octets:

byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);

275
2018-01-19 14:11



L'approche générale pour écrire dans n'importe quel flux (pas seulement MemoryStream) est d'utiliser BinaryWriter:

static void Write(Stream s, Byte[] bytes)
{
    using (var writer = new BinaryWriter(s))
    {
        writer.Write(bytes);
    }
}

26
2018-01-19 15:09



Regardez dans le MemoryStream classe.


5
2018-01-19 14:10