La sérialisation permet la conversion d'un objet en un flux d'octets, permettant son stockage dans des fichiers ou sa transmission sur des réseaux. Cette question répond au défi spécifique de la sauvegarde et du chargement d'une structure sérialisée stockée dans un MemoryStream dans un fichier.
Pour enregistrer le contenu sérialisé d'un MemoryStream dans un fichier, vous pouvez utiliser la méthode WriteTo. Cette méthode prend un flux comme argument et y écrit le contenu du MemoryStream. Voici un exemple :
using System.IO; using System.Runtime.Serialization.Formatters.Binary; // Create a MemoryStream to store serialized data MemoryStream memoryStream = new MemoryStream(); // Serialize an object to memory stream BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, objectToSerialize); // Save MemoryStream to file using (FileStream fileStream = new FileStream("filename.bin", FileMode.Create)) { memoryStream.WriteTo(fileStream); }
Pour charger le contenu sérialisé d'un fichier dans un MemoryStream, vous pouvez utiliser la méthode CopyTo (introduite dans la version 4.5.2 du framework ). Cette méthode transfère le contenu d'un flux à un autre. Dans ce cas, les données du fichier sont copiées dans MemoryStream. Voici un exemple :
// Create a MemoryStream to receive the loaded data MemoryStream loadedMemoryStream = new MemoryStream(); // Load file into MemoryStream using (FileStream fileStream = new FileStream("filename.bin", FileMode.Open)) { fileStream.CopyTo(loadedMemoryStream); }
Mise à jour : Depuis la version 4.5 du framework, la méthode CopyTo peut également être utilisée pour enregistrer un MemoryStream dans un fichier. Le code ci-dessous peut être utilisé de manière interchangeable avec la méthode WriteTo :
using System.IO; using System.Runtime.Serialization.Formatters.Binary; // Create a MemoryStream to store serialized data MemoryStream memoryStream = new MemoryStream(); // Serialize an object to memory stream BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, objectToSerialize); // Save MemoryStream to file using (FileStream fileStream = new FileStream("filename.bin", FileMode.Create)) { memoryStream.CopyTo(fileStream); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!