用StreamReader.Read(Char[],Int32,Int32) 只能从int长度的位置开始读取
如果要读取的文本在文件中long长度的位置该怎么办

解决方案 »

  1.   

    分段读取
    new Thread((ThreadStart)delegate
      {
      StreamReader sr = new StreamReader(FileName, Encoding.GetEncoding("gb2312"));
      int line = 0;
      string strline = sr.ReadLine();
      while (strline!="")
      {
      line++;
      strline = sr.ReadLine();
      }
      sr.Close();
      }).Start();private int _bufferSize = 16384; 
    private void ReadFile(string filename) 
    {
        StringBuilder stringBuilder = new StringBuilder();     
        FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);  
        using (StreamReader streamReader = new StreamReader(fileStream))     
        {        
            char[] fileContents = new char[_bufferSize];         
            int charsRead = streamReader.Read(fileContents, 0, _bufferSize); 
            while (charsRead > 0)         
            {             
                stringBuilder.Append(fileContents);             
                charsRead = streamReader.Read(fileContents, 0, _bufferSize); 
            }     
        } 
    }
      

  2.   

    List<string> lst=new List<string>(File.ReadAllLines(""));
    lst.Skip().Take