还是对c#中流的概念不太理解,是否用后一定要close()呢?
答案:3 悬赏:10 手机版
解决时间 2021-03-02 08:11
- 提问者网友:愿为果
- 2021-03-02 00:23
比如filestream和streamreader,streamwriter,用后如果不关闭会怎么样?别的流就不能访问文件了?怎么感觉流很像后面对数据库的连接呢?
最佳答案
- 五星知识达人网友:思契十里
- 2021-03-02 01:58
文件流处理分为好几种情况。一般来说独占文件打开的话,如果不关闭文件流,那么其它进程就无法读取这个文件了。二在使用写入模式打开文件的时候,如果不进行close可能会有部分数据在缓存中没有真实写入文件中,这样其它程序打开文件时看到的数据就不完整了。
而在其它大数情况下不对文件进行close不会造成太大的问题,而且文件流对象一般会被垃圾回收机制自动回收并关闭相应的句柄。当然可能的情况下强烈建议使用完成后进行关闭。
而数据库连接打开后不关闭一般比打开文件要严重一些,数据库连接池的可用连接数有限,如果打开不关闭,会很快耗尽可用连接造成数据连接无法打开。
而在其它大数情况下不对文件进行close不会造成太大的问题,而且文件流对象一般会被垃圾回收机制自动回收并关闭相应的句柄。当然可能的情况下强烈建议使用完成后进行关闭。
而数据库连接打开后不关闭一般比打开文件要严重一些,数据库连接池的可用连接数有限,如果打开不关闭,会很快耗尽可用连接造成数据连接无法打开。
全部回答
- 1楼网友:廢物販賣機
- 2021-03-02 03:55
流和数据库连接不一样。 流打开的是文件,打开后如果不关,会造成文件始终被人使用,其他人不能修改,只能通过只读方式打开了。
- 2楼网友:笑迎怀羞
- 2021-03-02 02:55
你好!
要close()手动关掉,如果不手动关掉也可以,用using这种方式就可系统自动关闭,连接数据库也一样可以用close或using
using(filestream f = new filestream())
{
................
}
我的回答你还满意吗~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯