Can you keep a StreamReader from disposing the underlying stream?

前端 未结 9 2056
小鲜肉
小鲜肉 2020-11-30 09:22

Is there a way to do this:

this.logFile = File.Open(\"what_r_u_doing.log\", FileMode.OpenOrCreate, FileAccess.ReadWrite);

using(var sr = new StreamReader(th         


        
9条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-30 10:22

    I always use something like this: (it also uses the leaveOpen argument)

    public static class StreamreaderExtensions
    {
        public static StreamReader WrapInNonClosingStreamReader(this Stream file) => new StreamReader(file, Encoding.UTF8, true, 1024, true);
    }
    

    Usage:

    using (var reader = file.WrapInNonClosingStreamReader())
    {
         ....
    }
    

提交回复
热议问题