Serialisierung ermöglicht die Konvertierung eines Objekts in einen Bytestrom und ermöglicht so seine Speicherung in Dateien oder die Übertragung über Netzwerke. Diese Frage befasst sich mit der besonderen Herausforderung des Speicherns und Ladens einer in einem MemoryStream gespeicherten serialisierten Struktur in eine Datei.
Um den serialisierten Inhalt aus einem MemoryStream in einer Datei zu speichern, Sie können die WriteTo-Methode verwenden. Diese Methode nimmt einen Stream als Argument und schreibt den Inhalt des MemoryStream darauf. Hier ist ein Beispiel:
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); }
Um den serialisierten Inhalt aus einer Datei in einen MemoryStream zu laden, können Sie die CopyTo-Methode verwenden (eingeführt in Framework-Version 4.5.2). ). Diese Methode überträgt den Inhalt eines Streams auf einen anderen. In diesem Fall werden die Daten aus der Datei in den MemoryStream kopiert. Hier ein Beispiel:
// 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); }
Update: Ab Framework-Version 4.5 kann die CopyTo-Methode auch verwendet werden, um einen MemoryStream in einer Datei zu speichern. Der folgende Code kann austauschbar mit der WriteTo-Methode verwendet werden:
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); }
Das obige ist der detaillierte Inhalt vonWie speichert und lädt man serialisierte Daten aus einem MemoryStream in eine Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!