首页 新闻 赞助 找找看

想做个小读书阅读器,但代码在读取60ktxt以上的文件时就崩了,求大神教一下

0
悬赏园豆:10 [已解决问题] 解决于 2017-03-13 22:07

闲来无事,在网上找到一个读取txt、写入txt文件的代码,然后就想用这段代码做一个小阅读(那种看小说的那种,额,经常看盗版的小说),但在布局的时候一切安好,可在读取小说的时候却发现根本读取不聊超过60k的txt文件,求大神帮忙改进一下,代码如下:

 byte[] byData = new byte[100];
        char[] charData = new char[1000];
        public void Read()
        {
            try
            {
                FileStream file = new FileStream("E:\\test.txt", FileMode.Open);
                file.Seek(0, SeekOrigin.Begin);
                file.Read(byData, 0, 100); //byData传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
                Decoder d = Encoding.Default.GetDecoder();
                d.GetChars(byData, 0, byData.Length, charData, 0);
                Console.WriteLine(charData);
                file.Close();
            }
            catch (IOException e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    
复制代码

  (2).使用StreamReader读取文件,然后一行一行的输出。

复制代码
    public void Read(string path)
        {
            StreamReader sr = new StreamReader(path,Encoding.Default);
            String line;
            while ((line = sr.ReadLine()) != null) 
            {
                Console.WriteLine(line.ToString());
            }
        }
复制代码

3.文件的写入
  (1).使用FileStream类创建文件,然后将数据写入到文件里。

复制代码
        public void Write()
        {
            FileStream fs = new FileStream("E:\\ak.txt", FileMode.Create);
            //获得字节数组
            byte[] data = System.Text.Encoding.Default.GetBytes("Hello World!"); 
            //开始写入
            fs.Write(data, 0, data.Length);
            //清空缓冲区、关闭流
            fs.Flush();
            fs.Close();
        }
复制代码

  (2).使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。

复制代码
        public void Write(string path)
        {
            FileStream fs = new FileStream(path, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            //开始写入
            sw.Write("Hello World!!!!");
            //清空缓冲区
            sw.Flush();
            //关闭流
            sw.Close();
            fs.Close();
        }
复制代码
玄月白的主页 玄月白 | 初学一级 | 园豆:6
提问于:2017-03-12 20:44
< >
分享
最佳答案
0

可能是问题没设好吧,在发个题

玄月白 | 初学一级 |园豆:6 | 2017-03-13 22:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册