如何在方法中返回之前关闭流
本文关键字:返回 方法 | 更新日期: 2023-09-27 18:24:50
我得到System.IO.IOException
,因为我的文件正被另一个进程使用。是因为未闭合的溪流吗?如果是,我该如何关闭它?
public static ReportClass DeserializeRep(string FileWay)
{
Stream stream = File.Open(FileWay, FileMode.Open);
BinaryFormatter bformatter = new BinaryFormatter();
return (ReportClass)bformatter.Deserialize(stream);
}
var CurRep = RequestSerializer.DeserializeRep(paths[selected]);
您应该使用using语句:
public static ReportClass DeserializeRep(string FileWay)
{
using (Stream stream = File.Open(FileWay, FileMode.Open))
{
BinaryFormatter bformatter = new BinaryFormatter();
return (ReportClass)bformatter.Deserialize(stream);
}
}
还应该注意的是,using语句会自动调用从IDisposible继承的任何对象的Dispose方法,在这种情况下,该方法会关闭连接,然后处置对象。
IDisposible文档可在此处找到。