关于 c# StreamReader的问题
我要用StreamReader动态读取不同的文件,现在有问题出现。我这样用:StreamReadersr;...sr=System.IO.File.OpenText(fi...
我要用StreamReader动态读取不同的文件,现在有问题出现。
我这样用:
StreamReader sr;
...
sr = System.IO.File.OpenText(filePath); .... sr.close();
但是这样的话,sr是不支持中文的。
因为定义sr时不可能知道filePath,所以不可能
StreamReader sr = new StreadReader(filepath/fs, encoding..);
那么如果我既要支持中文,又要支持打开不同文件。
现在能想的到的,只能:
StreamReader sr;
...
sr = new StreamReader(filepath, encoding);
...
sr.Close(); //? 还需要close吗?
但是总不能一直new吧,如果我新new StreamReader,会自动收回之前的new吗? 展开
我这样用:
StreamReader sr;
...
sr = System.IO.File.OpenText(filePath); .... sr.close();
但是这样的话,sr是不支持中文的。
因为定义sr时不可能知道filePath,所以不可能
StreamReader sr = new StreadReader(filepath/fs, encoding..);
那么如果我既要支持中文,又要支持打开不同文件。
现在能想的到的,只能:
StreamReader sr;
...
sr = new StreamReader(filepath, encoding);
...
sr.Close(); //? 还需要close吗?
但是总不能一直new吧,如果我新new StreamReader,会自动收回之前的new吗? 展开
展开全部
建议用using来完成读写 因为StreamReader可以直接使用using来完成读写而且不需要Close;
using(StreamReader sr = new StreadReader(filepath/fs, encoding..))
{
//sr的操作
//结束时不需要close
}
//一旦离开using sr会被自动强制释放
还有你上面那种写法也可以 设置一下Encodeing的属性为Default
using(StreamReader sr = new StreadReader(filepath/fs, encoding..))
{
//sr的操作
//结束时不需要close
}
//一旦离开using sr会被自动强制释放
还有你上面那种写法也可以 设置一下Encodeing的属性为Default
追问
我对sr的操作在using{...}里面完成不了,还需要其他地方使用,不能这样。
难道号称比VC强很多的VS,做这点东西都这么费劲吗?!
追答
其他地方继续实例出来就行了 用完就释放
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询