Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试反序列化空流时出错_C#_.net_Deserialization_Filestream - Fatal编程技术网

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)

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

是的,文件是空的。因此,在尝试反序列化空文件时,您还希望看到什么?这是我程序的一部分。当我的程序启动时,它从缓存文件中获取最近的文件名,并填充到最近打开的选项卡。由于程序第一次运行,因此文件保持为空。