C# 尝试反序列化空流时出错
我正在尝试对文件中的字符串列表进行反序列化。这是我的密码C# 尝试反序列化空流时出错,c#,.net,deserialization,filestream,C#,.net,Deserialization,Filestream,我正在尝试对文件中的字符串列表进行反序列化。这是我的密码 FileStream filestream = new FileStream(@"D:\cache.bin", FileMode.OpenOrCreate); try { BinaryFormatter binformat = new BinaryFormatter(); _cacheFileList = (List<string>)binformat.Deserialize(filestream); } ca
FileStream filestream = new FileStream(@"D:\cache.bin", FileMode.OpenOrCreate);
try
{
BinaryFormatter binformat = new BinaryFormatter();
_cacheFileList = (List<string>)binformat.Deserialize(filestream);
}
catch (SerializationException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
filestream.Close();
}
FileStream FileStream=newfilestream(@“D:\cache.bin”,FileMode.OpenOrCreate);
尝试
{
BinaryFormatter binformat=新的BinaryFormatter();
_cacheFileList=(List)binformat.Deserialize(filestream);
}
catch(SerializationException-ex)
{
控制台写入线(例如消息);
}
最后
{
filestream.Close();
}
我得到一个运行时错误正在尝试反序列化空流。如果要支持空文件,请首先检查文件是否为空:
if (filestream.Length == 0)
如果是,请初始化数据。如果不是,则从文件反序列化。(请注意,文件内容应该是序列化的结果。)是的,文件是空的。因此,在尝试反序列化空文件时,您还希望看到什么?这是我程序的一部分。当我的程序启动时,它从缓存文件中获取最近的文件名,并填充到最近打开的选项卡。由于程序第一次运行,因此文件保持为空。