ホームページ  >  記事  >  バックエンド開発  >  シリアル化されたデータを MemoryStream からファイルに保存およびロードするにはどうすればよいでしょうか?

シリアル化されたデータを MemoryStream からファイルに保存およびロードするにはどうすればよいでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 11:13:30857ブラウズ

How do you save and load serialized data from a MemoryStream to a file?

MemoryStream の管理: ファイルの保存とファイルからのロード

シリアル化により、オブジェクトをバイト ストリームに変換でき、ファイルへの保存やネットワーク経由の送信が可能になります。この質問は、MemoryStream に格納されているシリアル化された構造をファイルに保存およびロードするという特定の課題に対処します。

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 をロード

シリアル化されたコンテンツをファイルから 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。