C#在VS中导入100多万的txt格式数据比较慢的问题。
1、在网上的找得程序,能运行,但是数据量一大,就卡住没反应了。请帮看看,如果读取超过100多万的数据,该如何优化?或者有更好的方式。
2、txt数据格式是前几行是乱七八糟的文字介绍,之后是规整的数组结构的数据,100多万行,4列,如何在程序中增加采用不同的分隔符来截取数组数据。
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Multiselect = true; //表示可以一次选择多个文件,默认为false
fileDialog.Title = "请选择文件";
fileDialog.Filter = "文本文件(*.txt)|*.txt*";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
string file = fileDialog.FileName;// 返回文件的完整路径
string txt = " ";
StreamReader sr = new StreamReader(@file);
while (!sr.EndOfStream)
{
string str = sr.ReadLine();
txt += str + "\n";
}
sr.Close();
richTextBox1.Text = txt;
}
}
txt += str + "\n";
这种连接很没效率,用 StringBuilder 代替
另外,可以用 System.File.IO.ReadAllText 一次性全部读取,不要一行一行读
1.+=这种方式,会非常没效率,当字符串需要反复拼接的时候,应该使用StringBuilder 而不是string
2.几百万行的数据,直接richTextBox1.Text = txt;这样显示,不算读文件和拼接字符串的时间,控件本身刷新就够刷半天的
就算显示出来了也根本没法看呀,这么多数据你不做分页吗