2014-09-03 28 views
0

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

我得到运行时错误。 试图反序列化一个空的流。

+0

该文件是否为空? – 2014-09-03 04:34:08

+0

是的文件是空的。 – 2014-09-03 04:35:15

+2

那么,当试图反序列化一个空文件时,你还会期望什么? – 2014-09-03 04:35:49

回答

7

如果你想为空文件,首先检查的支持,如果该文件是空的:

if (filestream.Length == 0) 

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