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


主要是因为有些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; }

}
阅读更多
个人分类: C#
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭