StreamReader 的默认值是什么?
What are the default values for StreamReader?
我需要使用此构造函数 public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen)
才能将 leaveOpen
设置为 true
。为此,我还需要设置其他参数 (Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize
)。我想按原样使用 StreamReader
所以我不想给出一些随机值。这些参数的默认值是多少?
顺便说一下,我知道我可以使用 StreamReader
而不用 using
。并且 GC 将在不接触流的情况下摆脱它。
默认值如下:
- 编码:编码.UTF8
- detectEncodingFromByteOrderMarks: true
- 默认缓冲区大小:1024
您可以通过访问 Reference Source
自己查看构造函数和值
Encoding.UTF8
、true
和 1024
。
来源:the source.
Encoding
的默认值是Encoding.UTF8
,bufferSize
的默认值是1024也是documented in the MSDN,但是detectEncodingFromByteOrderMarks
的默认值不是'似乎是。
您可以检查 the reference source 来确定这一点。
它表明:
- detectEncodingFromByteOrderMarks 为真
- 默认缓冲区大小为 1024 或 4096
- 编码为Encoding.UTF8
- leaveOpen 为假
就我个人而言,我会为桌面应用程序设置 DefaultBufferSize 4096。
Stream stream
你需要传递才能读取。 Encoding encoding
默认 AFAIK 是 UTF-8
。 int bufferSize
最少 128 个字符。 bool leaveOpen
默认是 false
所以它会在读取流后调用 Dispose()
Documentation说清楚了
我需要使用此构造函数 public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen)
才能将 leaveOpen
设置为 true
。为此,我还需要设置其他参数 (Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize
)。我想按原样使用 StreamReader
所以我不想给出一些随机值。这些参数的默认值是多少?
顺便说一下,我知道我可以使用 StreamReader
而不用 using
。并且 GC 将在不接触流的情况下摆脱它。
默认值如下:
- 编码:编码.UTF8
- detectEncodingFromByteOrderMarks: true
- 默认缓冲区大小:1024
您可以通过访问 Reference Source
自己查看构造函数和值Encoding.UTF8
、true
和 1024
。
来源:the source.
Encoding
的默认值是Encoding.UTF8
,bufferSize
的默认值是1024也是documented in the MSDN,但是detectEncodingFromByteOrderMarks
的默认值不是'似乎是。
您可以检查 the reference source 来确定这一点。
它表明:
- detectEncodingFromByteOrderMarks 为真
- 默认缓冲区大小为 1024 或 4096
- 编码为Encoding.UTF8
- leaveOpen 为假
就我个人而言,我会为桌面应用程序设置 DefaultBufferSize 4096。
Stream stream
你需要传递才能读取。 Encoding encoding
默认 AFAIK 是 UTF-8
。 int bufferSize
最少 128 个字符。 bool leaveOpen
默认是 false
所以它会在读取流后调用 Dispose()
Documentation说清楚了