在ReadToEnd之后关闭StreamReader

在构造中调用ReadToEnd方法后,是否有可能以某种方式关闭StreamReader:

string s = new StreamReader("filename", Encoding.UTF8).ReadToEnd(); 

任何具有相同语义的替代优雅结构也将被接受。

我认为你真正想要的方法是File.ReadAllText ,如果你只是试图用最短的代码读取文件中的所有文本。

如果未指定编码,则会自动使用UTF-8。

您可以使用using语句自动关闭流:

 string s = null; using ( StreamReader reader = new StreamReader( "filename", Encoding.UTF8 ) { s = reader.ReadToEnd(); } 

不,没有,但使用inheritanceIDisposableforms的dispose对象总是一个好习惯。 如果不在循环中执行此操作,则会出现内存泄漏

 string s = string.Empty; using(StreamReader sr = new StreamReader("filename", Encoding.UTF8)) { s = sr.ReadToEnd(); }