我正在尝试编写序列化和反序列化的程序。但我的程序正在抛出异常
尝试反序列化空流。 在“mp =(employee)bfr.Deserialize(s);”
我没有弄到我的程序出了什么问题。
这是我的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace serializationDemo
{
[Serializable()]
public class employee : ISerializable
{
public int empid;
public string empname;
public employee()
{
empid=0;
empname = null;
}
public employee(SerializationInfo info,StreamingContext ctxt)
{
empid =(int)info.GetValue("EmployeeId",typeof(int));
empname = (string)info.GetValue("EmployeeName",typeof(string));
}
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("EmployeeId",empid);
info.AddValue("EmployeeName", empname);
}
}
public class Program
{
public static void Main(string[] args)
{
employee mp = new employee();
mp.empid = 10;
mp.empname = "Waseem";
Stream s = File.Open("employee.osi", FileMode.Create);
BinaryFormatter bfr = new BinaryFormatter();
Console.WriteLine("\nWritting employee information...");
bfr.Serialize(s,mp);
s.Close();
mp = null;
s = File.Open("employee.osi", FileMode.Create);
bfr = new BinaryFormatter();
mp = (employee)bfr.Deserialize(s);
s.Close();
Console.WriteLine("Employee ID={0}", mp.empid.ToString());
Console.WriteLine("Employee Name={0}", mp.empname);
Console.ReadKey();
}
}
}
答案 0 :(得分:0)
FileMode.Create
将删除该文件。你想要Open
。