快速读取大文本文件.richTextBox和StringBuilder用法

it2022-05-05  118

主要是因为有些txt小说之类的,如果用 richTextBox1.LoadFile 是快,但是问题是不会换行,比如起点里面下载的txt文本的小说就有这个毛病,研究后发现要用流读取,每次1行.刚刚做的时候效率很差,主要是把richTextBox1放到循环里面去增加行了.......汗.现在把关键代码添上 // 直接打开,代码简单,就是有些txt打开后不会换行          private   void  rtf方式ToolStripMenuItem_Click( object  sender, EventArgs e)         {             OpenFileDialog op  =   new  OpenFileDialog();             op.Filter  =   " 文本文件(*.txt)|*.txt " ;             op.AddExtension  =   true ;             op.DefaultExt  =   " txt " ;             op.CheckFileExists  =   true ;             op.CheckPathExists  =   true ;              if  (op.ShowDialog()  ==  DialogResult.OK)             {                 fileName  =  op.FileName;                  try                 {                     richTextBox1.LoadFile(fileName, RichTextBoxStreamType.PlainText);                 }                  catch  (Exception ex)                 {  throw  ex; }             }         } 下面这个才是王道啊.解决换行问题,高速读取          private   void  rich()         {              try             {                 FileStream fs  =   new  FileStream(fileName, FileMode.Open, FileAccess.Read);                  if  (fs.CanRead)                 {                      // 读取时加入编码信息,否则读取汉字会乱码                     StreamReader sr  =   new  StreamReader(fs, Encoding.Default);                      string  strline  =  sr.ReadLine();                     StringBuilder sb  =   new  StringBuilder();                      while  (strline  !=   null )                     {                         strline  =  sr.ReadLine();                         sb  =  sb.Append(strline  +   " \n " );                     }                     sr.Close();                     richTextBox1.Text  =  sb.ToString();                 }             }              catch  (Exception ex)             {  throw  ex; }         }

转载于:https://www.cnblogs.com/wind8250/archive/2008/02/25/1080777.html


最新回复(0)