2014-09-03 29 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) 

如果是,初始化數據。如果不是,則從該文件反序列化。 (請注意,文件的內容應該是序列化的結果。)