还是对c#中流的概念不太理解,是否用后一定要close()呢?

2025-12-06 15:08:44
推荐回答(3个)
回答1:

文件流处理分为好几种情况。一般来说独占文件打开的话,如果不关闭文件流,那么其它进程就无法读取这个文件了。二在使用写入模式打开文件的时候,如果不进行close可能会有部分数据在缓存中没有真实写入文件中,这样其它程序打开文件时看到的数据就不完整了。

而在其它大数情况下不对文件进行close不会造成太大的问题,而且文件流对象一般会被垃圾回收机制自动回收并关闭相应的句柄。当然可能的情况下强烈建议使用完成后进行关闭。

而数据库连接打开后不关闭一般比打开文件要严重一些,数据库连接池的可用连接数有限,如果打开不关闭,会很快耗尽可用连接造成数据连接无法打开。

回答2:

要close()手动关掉,如果不手动关掉也可以,用using这种方式就可系统自动关闭,连接数据库也一样可以用close或using
using(filestream f = new filestream())
{
................

}

回答3:

流和数据库连接不一样。 流打开的是文件,打开后如果不关,会造成文件始终被人使用,其他人不能修改,只能通过只读方式打开了。