在构造中调用ReadToEnd方法之后是否有可能以某种方式关闭StreamReader:
string s = new StreamReader("filename", Encoding.UTF8).ReadToEnd();
任何具有相同语义的替代优雅结构也将被接受。
答案 0 :(得分:12)
我认为你真正使用的方法是File.ReadAllText,如果你只是想用尽可能短的代码读取文件中的所有文本。
如果您没有指定编码,它将自动使用UTF-8。
答案 1 :(得分:2)
您可以使用 using 语句,自动关闭该流:
string s = null;
using ( StreamReader reader = new StreamReader( "filename", Encoding.UTF8 ) { s = reader.ReadToEnd(); }
答案 2 :(得分:2)
没有,但使用继承的dispose对象总是一个好习惯 形式IDisposable。如果不在循环中执行此操作,则会出现内存泄漏
string s = string.Empty;
using(StreamReader sr = new StreamReader("filename", Encoding.UTF8))
{
s = sr.ReadToEnd();
}