Siri membolehkan penukaran objek kepada aliran bait, membolehkan penyimpanannya dalam fail atau penghantaran melalui rangkaian. Soalan ini menangani cabaran khusus untuk menyimpan dan memuatkan struktur bersiri yang disimpan dalam MemoryStream ke fail.
Untuk menyimpan kandungan bersiri daripada MemoryStream ke fail, anda boleh menggunakan kaedah WriteTo. Kaedah ini mengambil aliran sebagai hujah dan menulis kandungan MemoryStream kepadanya. Berikut ialah contoh:
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); }
Untuk memuatkan kandungan bersiri daripada fail ke dalam MemoryStream, anda boleh menggunakan kaedah CopyTo (diperkenalkan dalam rangka kerja versi 4.5.2 ). Kaedah ini memindahkan kandungan satu aliran ke aliran yang lain. Dalam kes ini, data daripada fail disalin ke dalam MemoryStream. Berikut ialah contoh:
// 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); }
Kemas kini: Mulai rangka kerja versi 4.5, kaedah CopyTo juga boleh digunakan untuk menyimpan MemoryStream ke fail. Kod di bawah boleh digunakan secara bergantian dengan kaedah 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); }
Atas ialah kandungan terperinci Bagaimanakah anda menyimpan dan memuatkan data bersiri daripada MemoryStream ke fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!