직렬화를 사용하면 객체를 바이트 스트림으로 변환하여 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다. 이 질문은 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); }
업데이트: 프레임워크 버전 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!