>  기사  >  백엔드 개발  >  MemoryStream에서 직렬화된 데이터를 어떻게 파일로 저장하고 로드합니까?

MemoryStream에서 직렬화된 데이터를 어떻게 파일로 저장하고 로드합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 11:13:30865검색

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으로 문의하세요.