用C#读取一个exe文件,然后将这个文件以二进制代码的形式显示在一个TextBox里面,但是读取速度很慢,求思路

FileStreamfs=newFileStream(path,FileMode.Open);BinaryStreamsr=newStreamReader(fs);whi... FileStream fs = new FileStream(path, FileMode.Open);
BinaryStream sr = new StreamReader(fs);
while (sr.BaseStream.Position<sr.BaseStream.Length)
{

textBox1.Text+= Convert.ToString(sr.ReadChar(),2);

}
sr.Close();
fs.Close();
这个是源码,我是通过多线程来处理的,可以实现,但是速度实在是太慢了,我用win7系统自带的记事本程序做实验,结果读取了几十分钟还没有读取完,求大神给个思路!!!
展开
 我来答
lasic
2012-04-15 · TA获得超过374个赞
知道小有建树答主
回答量:460
采纳率:100%
帮助的人:403万
展开全部
while (sr.BaseStream.Position<sr.BaseStream.Length)
{

textBox1.Text+= Convert.ToString(sr.ReadChar(),2);

}
这种方式肯定会很慢的,每次读取一个字节。对于一个1M的文件,就需要读取100万次。
使用 ReadBytes 方法,一次读取进来。
如果文件很大,可以每次读取一定大小的字节。
追问
嗯,我想到过,如果我一次性读取到一个数组里面然后再往TextBox控件上输出的时候,就变的很慢!
追答
FileStream fs = new FileStream(path, FileMode.Open);
byte[] bytes =new byte[fs.Length];
fs.Read(bytes, 0, (int)fs.Length);

textBox1.Text=bytes.ToString();
zw190322
2012-04-16 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:111万
展开全部
我只想知道,你实现这个有什么用处呢????
追问
可以实现类似UE的功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式