首页 新闻 会员 周边

关于Encoding 变成变量之后的异常问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-05-08 12:39

FileStream fs = new FileStream(fullfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);   

Encoding en=GetType(fs);//可以得到文件的编码格式

StreamReader sr = new StreamReader(fs, (Encoding)en);//这步会报异常。。如果把 (Encoding)en换成指定的Encoding.UTF8  程序执行是没问题的。。。

廉颇老矣,尚能饭否的主页 廉颇老矣,尚能饭否 | 初学一级 | 园豆:193
提问于:2014-05-08 10:33
< >
分享
最佳答案
0

报什么异常?

收获园豆:10
吴瑞祥 | 高人七级 |园豆:29449 | 2014-05-08 10:41

流不可读。。

廉颇老矣,尚能饭否 | 园豆:193 (初学一级) | 2014-05-08 10:44

FileStream fs = new FileStream(str[i], FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Encoding en=GetType(fs);
MessageBox.Show(en.ToString());
StreamReader sr = new StreamReader(fs, (Encoding)en);
byte[] buf = new byte[fs.Length];
MessageBox.Show(fs.Length.ToString());
int aaa = Convert.ToInt32(fs.Length);
int count = fs.Read(buf, 0, aaa);
textBox1.Text = Encoding.UTF8 .GetString(buf, 0,count);

 

 

这段代码  您给看看  有什么错误么,,

廉颇老矣,尚能饭否 | 园豆:193 (初学一级) | 2014-05-08 10:45

@廉颇老矣,尚能饭否: 

猜测,大概是GetType方法里面读取流fs了.把指针往后移了.然后没重置.

你后面再读的时候,流指针已经到尾了.就有这个异常了

吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-08 12:24

@吴瑞祥: 是这样的。。谢了。。你有关于读取文件格式的方法么   我的Unicode编码  不能检查。。。不全。。这个怎么给你豆元啊。。

廉颇老矣,尚能饭否 | 园豆:193 (初学一级) | 2014-05-08 12:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册