运行时错误尝试反序列化空流

时间:2014-09-03 04:31:15

标签: c# .net deserialization filestream

我正在尝试deserialize文件中的字符串列表。这是我的代码

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

我收到运行时错误。 尝试反序列化空流。

1 个答案:

答案 0 :(得分:8)

如果要支持空文件,请先检查文件是否为空:

if (filestream.Length == 0)

如果是,请初始化您的数据。如果不是,则从文件中反序列化。 (请注意,文件的内容应该是序列化的结果。)