文本文件中每一行的长度是固定的,但需要从文件的最后一行向第一行读,最好能节省空间的,一边读一边操作,不要把整个文本文件读出来后再整理的最好~~~

解决方案 »

  1.   

    加载到RichTextBox然后从最后一行读。
      

  2.   

    先求出整个文件字节数为i,每行字节100
    for(i=1000;i>0;i-100)
    {
    从i的位置读,开线程,线程队列也行。就干活呗。
    }没别的好法。。
      

  3.   

    下面代码不论定长与否都可以取得数据。
    输出的内容是倒排的。FileStream fs = File.OpenRead("c:\\1.txt");
    BinaryReader reader = new BinaryReader(fs,System.Text.Encoding.Default);
    long len = reader.BaseStream.Seek(0,SeekOrigin.End);
    ArrayList newLine = new ArrayList();
    reader.BaseStream.Seek(-1,SeekOrigin.Current);
    for(int i = 1; i < len ; i++)
    {
    byte b = reader.ReadByte();
    reader.BaseStream.Seek(-2,SeekOrigin.Current);
    if(b == Convert.ToByte('\n'))
    {
    this.textBox1.Text +="\r\n"+System.Text.Encoding.Default.GetString((byte[])newLine.ToArray(typeof(byte)));
    newLine.Clear();
    }
    else
    {
    newLine.Insert(0,b);
    }
    }