Comment convertir une structure System.Byte byte[]en System.IO.Streamobjet en C # ?
Comment convertir une structure System.Byte byte[]en System.IO.Streamobjet en C # ?
Réponses:
La façon la plus simple de convertir un tableau d'octets en un flux est d'utiliser la MemoryStreamclasse:
Stream stream = new MemoryStream(byteArray);
stream.ToArray()si vous souhaitez récupérer votre tableau d'octets.
Vous cherchez la MemoryStream.Writeméthode .
Par exemple, le code suivant écrira le contenu d'un byte[]tableau dans un flux mémoire:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
Vous pouvez également créer un nouvelMemoryStream objet non redimensionnable basé sur le tableau d'octets:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
MemoryStream.Writeconsomme alors beaucoup plus de mémoirenew MemoryStream(myByteArray)
MemoryStreamtampon par défaut (comme avec par exemple une liste). Cela peut être traité facilement en utilisant la surcharge qui vous permet de définir la capacité, mais n'est vraiment utile que si vous ne vous attendez pas à écrire des données dans le flux (ou si vous savez de combien d'octets supplémentaires vous aurez probablement besoin ). Mais je soupçonne que jitbit pourrait faire référence au fait que lorsque vous utilisez le byte[]constructeur, le tableau n'est pas copié - le MemoryStreamfait référence au tableau dans l'argument. Cela peut être à la fois bon et mauvais, et c'est un peu dommage qu'il ne soit pas documenté sur MSDN :)
Regardez dans la MemoryStreamclasse.