将对象列表保存到磁盘/从磁盘读取对象列表

本文关键字:磁盘 列表 取对象 读取 对象 保存 | 更新日期: 2023-09-27 18:36:04

我对我的代码进行了一些更改。保存到磁盘的方法工作正常。

public void SaveList()
{
   FileStream stream = new FileStream(@"persons.dat", FileMode.Create);
   BinaryFormatter formatter = new BinaryFormatter();
   formatter.Serialize(stream, myList);
   stream.Close();
}
public void ReadList()
{
   FileStream stream = new FileStream(@"persons.dat", FileMode.Open);
   BinaryFormatter formatter = new BinaryFormatter();
   List<Person> myList = formatter.Deserialize(stream) as List<Person>;
}

我可以看到正在创建人员.dat文件,并且对象的状态正在保存到文件中。但问题在于尝试阅读时。重新运行程序并调用方法 ReadList() 时,不会显示任何错误。然后我调用一个方法来消除存储在列表中的对象的详细信息,但列表是空的!!

将对象列表保存到磁盘/从磁盘读取对象列表

public void ReadList()
{
    FileStream stream = new FileStream(@"persons.dat", FileMode.Open);
    BinaryFormatter formatter = new BinaryFormatter();
    myList = (List<Person>)formatter.Deserialize(stream);
    // Here I was creating a new list.. List<Person> myList = (List<Person>)formatter.Deserialize(stream);
    stream.Close();
}

上述方法已解决问题。这个问题是我正在将对象添加到新列表中,而不是我在类中创建的列表。