首頁  >  文章  >  後端開發  >  如何將序列化資料從 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);
}

更新: 從框架版本 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn