StreamReader的默认值是什么?

12
我需要使用这个构造函数public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen)来将leaveOpen设置为true。为此,我需要将其他参数也设置好(编码,是否检测字节顺序标记,缓冲区大小)。我想使用StreamReader,因此不想随意赋值。那么这些参数的默认值是什么?
另外,我知道可以在没有using的情况下使用StreamReader。GC会在不影响流的情况下摆脱它。
4个回答

26

默认值如下:

  • 编码方式:Encoding.UTF8
  • 自动检测字节序标记:true
  • 默认缓冲区大小:1024

您可以通过访问参考源码查看构造函数和相应的值。


4
你可以检查 参考源 来确定这一点。
它揭示了以下内容:
  • detectEncodingFromByteOrderMarks 为 true
  • DefaultBufferSize 为 1024 或 4096
  • encoding 为 Encoding.UTF8
  • leaveOpen 为 false
个人建议在桌面应用程序中将 DefaultBufferSize 设置为 4096。

3

Encoding.UTF8true1024 分别表示编码格式、是否检测字节顺序标记和缓冲区大小。

来源:该来源

虽然默认情况下 Encoding 的值为 Encoding.UTF8bufferSize 的默认值为 1024,但是 detectEncodingFromByteOrderMarks 的默认值似乎没有被 MSDN 文档 记载。


0
需要传递的是 Stream stream,默认的编码方式是 UTF-8。缓冲区大小 int bufferSize 至少为 128 个字符。默认情况下,bool leaveOpenfalse,因此在读取流后会调用 Dispose()

文档 已经清楚地说明了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接