部署streamreader是否关闭流?

部署streamreader是否关闭流?,第1张

部署streamreader是否关闭流?

是的,

StreamReader
StreamWriter
BinaryReader
BinaryWriter
所有关闭/处置其底层流时,你叫
Dispose
他们。如果读取器/写入器只是垃圾回收,则它们
不会 处理流-您应该始终处理读取器/写入器,最好使用
using
语句。(实际上,这些类都不具有终结器,也不应该具有终结器。)

就个人而言,我也希望对流也具有using语句。您可以

using
整齐地嵌套语句而无需大括号:

using (Stream stream = ...)using (StreamReader reader = new StreamReader(stream, Encoding.Whatever)){}

即使

using
该流的语句有点多余(除非
StreamReader
构造函数抛出异常),我还是将其视为最佳实践,因为如果您删除了
StreamReader
并在以后直接使用该流,则您将已经得到了正确的处理语义。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5487523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存