Maison  >  Article  >  développement back-end  >  Comment enregistrer et charger des données sérialisées d’un MemoryStream vers un fichier ?

Comment enregistrer et charger des données sérialisées d’un MemoryStream vers un fichier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 11:13:30857parcourir

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

Gestion de MemoryStream : sauvegarde et chargement à partir de fichiers

La sérialisation permet la conversion d'un objet en un flux d'octets, permettant son stockage dans des fichiers ou sa transmission sur des réseaux. Cette question répond au défi spécifique de la sauvegarde et du chargement d'une structure sérialisée stockée dans un MemoryStream dans un fichier.

Enregistrement de MemoryStream dans un fichier

Pour enregistrer le contenu sérialisé d'un MemoryStream dans un fichier, vous pouvez utiliser la méthode WriteTo. Cette méthode prend un flux comme argument et y écrit le contenu du MemoryStream. Voici un exemple :

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);
}

Chargement d'un MemoryStream à partir d'un fichier

Pour charger le contenu sérialisé d'un fichier dans un MemoryStream, vous pouvez utiliser la méthode CopyTo (introduite dans la version 4.5.2 du framework ). Cette méthode transfère le contenu d'un flux à un autre. Dans ce cas, les données du fichier sont copiées dans MemoryStream. Voici un exemple :

// 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);
}

Mise à jour : Depuis la version 4.5 du framework, la méthode CopyTo peut également être utilisée pour enregistrer un MemoryStream dans un fichier. Le code ci-dessous peut être utilisé de manière interchangeable avec la méthode 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);
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn