| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1261 人关注过本帖
标题:c#写记事本问题
只看楼主 加入收藏
足迹
Rank: 1
来 自:广东惠州
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-4-2
收藏
 问题点数:0 回复次数:3 
c#写记事本问题
相信学c#的人都开始学习用c#写记事本的
但是我写的时候发现一个问题
不是很懂   请教下高手
private void OpenFile(string fileName)
        {
            FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
            byte[] array = new byte[10000000];或者byte[] array = new byte[1024];
            int length;
            while ((length = fs.Read(array, 0, array.Length)) > 0)
            {
                string s = System.Text.Encoding.Default.GetString(array, 0, length);
                textBox1.AppendText(s);
            }
就是写记事本读取内容的部分,用到了数组,数组设置的越大,打开要显示的内容的时候就不用循环那么多次来显示内容了。但别人说这里存在一个浪费空间问题,我不是很懂
我举个例子:比如要打开10000000大小的内容,我设置的数组byte[] array = new byte[10000000];刚好一样大,这样会浪费空间么?
如果我要打开1024字节,
我声明了byte[] array = new byte[10000000];时  ,是怎么个浪费空间?
搜索更多相关主题的帖子: 记事本 array length string FileStream 
2008-04-21 21:30
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
一样大不会,多了的话你就浪费了 100000000 - 1024 那么多的 byte 了...

你可以用分页的方式 + 预读取来处理,比如 16K 一页,又有效率又节约

女侠,约吗?
2008-04-22 14:19
blueskyss
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:81
专家分:0
注 册:2008-2-19
收藏
得分:0 
public void OpenFile(string fileName)
        {
            FileStream fs=null;
            StreamReader sr = null;
            try
            {
                fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
                sr = new StreamReader(fs, System.Text.Encoding.Default);
                contenttextBox.AppendText(sr.ReadToEnd());
                _editFileName = fileName;
               
            }
            catch (Exception ex)
            {
                MessageBox.Show("打开文件出错\r\n" + ex.Message);
               
            }
            finally
            {
                if (sr != null)
                {
                    sr.Close();
                }
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }
2008-04-23 09:32
blueskyss
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:81
专家分:0
注 册:2008-2-19
收藏
得分:0 
这是我的记事本的openfile代码,你可以看一下
2008-04-23 09:33
快速回复:c#写记事本问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029829 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved