シリアル化により、オブジェクトをバイト ストリームに変換でき、ファイルへの保存やネットワーク経由の送信が可能になります。この質問は、MemoryStream に格納されているシリアル化された構造をファイルに保存およびロードするという特定の課題に対処します。
シリアル化されたコンテンツを MemoryStream からファイルに保存するには、 WriteTo メソッドを利用できます。このメソッドはストリームを引数として受け取り、MemoryStream の内容をそれに書き込みます。次に例を示します。
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); }
シリアル化されたコンテンツをファイルから MemoryStream にロードするには、CopyTo メソッド (フレームワーク バージョン 4.5.2 で導入) を使用できます。 )。このメソッドは、あるストリームの内容を別のストリームに転送します。この場合、ファイルのデータは MemoryStream にコピーされます。以下に例を示します:
// 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: フレームワーク バージョン 4.5 では、CopyTo メソッドを使用して MemoryStream をファイルに保存することもできます。以下のコードは、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); }
以上がシリアル化されたデータを MemoryStream からファイルに保存およびロードするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。