如何将二进制文件读入序列化列表

本文关键字:序列化 列表 二进制文件 | 更新日期: 2023-09-27 18:18:29

我有一个事件列表,并使用以下代码将其保存在二进制文件中

using (FileStream fs = new FileStream(fileName, FileMode.CreateNew))
{
    using (BinaryWriter w = new BinaryWriter(fs))
    {
        foreach (MacroEvent macroEvent in events)
        {
            w.Write(macroEvent.TimeSinceLastEvent);
        }
    }
}

,但我很困惑,我如何阅读,并得到它再次在一个列表?

如何将二进制文件读入序列化列表

对于想要使用BinaryFormatter进行序列化和反序列化的对象,如何实现isserializable,下面的方法是一个很好的指南:

http://www.switchonthecode.com/tutorials/csharp-tutorial-serialize-objects-to-a-file

这是关于BinaryFormatter的。NET 4.0文档:

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter.aspx

和ISerializable:

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx

Sequential file access File using serialization
Add
Using system.Io
Using system.Runtime.Serialzation.Formatters.Binary
Using System.Runtime.Serialization
Using Macro Events
name space created fileform  : macroform
//Object For serializing RecordSerializables in binary format
Private Binary formatter = new binaryFormatter();
Private file stream output; //stream for writing to a file

使用方法Deserialize读取数据将Deserialize的结果转换为可序列化的类型,此转换是必要的,因为Deserialize返回类型object的引用,并且需要访问属于serializable类的属性。如果在反序列化过程中抛出错误抛出序列化并关闭文件流

Private BinaryFormatter = new BinaryFormatter();

Private文件流输入;//从文件

读取的流