【问题标题】:What are the default values for StreamReader?StreamReader 的默认值是什么?
【发布时间】:2016-07-26 08:17:30
【问题描述】:

我需要使用此构造函数public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen)leaveOpen 设置为true。为此,我还需要设置其他参数 (Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize)。我想按原样使用StreamReader,所以我不想给出一些随机值。这些参数的默认值是多少?

顺便说一句,我知道我可以在没有using 的情况下使用StreamReader。并且 GC 会在不接触流的情况下摆脱它。

【问题讨论】:

    标签: c# default streamreader


    【解决方案1】:

    默认值如下:

    • 编码:Encoding.UTF8
    • detectEncodingFromByteOrderMarks: true
    • 默认缓冲区大小:1024

    您可以通过访问Reference Source查看自己的构造函数和值

    【讨论】:

      【解决方案2】:

      分别为Encoding.UTF8true1024

      来源:the source

      Encoding 的默认值是 Encoding.UTF8bufferSize 的默认值是 1024 也是 documented in the MSDN,但 detectEncodingFromByteOrderMarks 的默认值似乎不是。

      【讨论】:

        【解决方案3】:

        您可以检查the reference source 来确定这一点。

        这表明:

        • detectEncodingFromByteOrderMarks 为真
        • DefaultBufferSize 为 1024 或 4096
        • 编码为 Encoding.UTF8
        • leaveOpen 为假

        就个人而言,我会为桌面应用程序设置 DefaultBufferSize 4096。

        【讨论】:

          【解决方案4】:

          Stream stream 你需要通过才能读取。 Encoding encoding 默认 AFAIK 是 UTF-8int bufferSize 最少为 128 个字符。 bool leaveOpen默认是false,所以读取流后会调用Dispose()

          Documentation说清楚了。

          【讨论】:

            猜你喜欢
            • 2018-06-22
            • 1970-01-01
            • 1970-01-01
            • 2011-08-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多