关于 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吗?
展开
 我来答
狼洞领主
2011-10-26 · 超过19用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:52.2万
展开全部
建议用using来完成读写 因为StreamReader可以直接使用using来完成读写而且不需要Close;

using(StreamReader sr = new StreadReader(filepath/fs, encoding..))
{
//sr的操作
//结束时不需要close
}
//一旦离开using sr会被自动强制释放

还有你上面那种写法也可以 设置一下Encodeing的属性为Default
追问
我对sr的操作在using{...}里面完成不了,还需要其他地方使用,不能这样。

难道号称比VC强很多的VS,做这点东西都这么费劲吗?!
追答
其他地方继续实例出来就行了 用完就释放
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式