不能一行一行读吗?
 StreamReader srReadLine = new StreamReader(
            (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
         System.Text.Encoding.ASCII);
         srReadLine.BaseStream.Seek(0, SeekOrigin.Begin);
         while (srReadLine.Peek() > -1) {
            Console.WriteLine(srReadLine.ReadLine());
         }
         srReadLine.Close();假如非要这样的话。使用这个方法试试:
从 index 开始,从当前流中将最多的 count 个字符读入 buffer。
public override int Read(
   in char[] buffer,
   int index,
   int count
);
StreamReader srRead = new StreamReader(
            (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
            System.Text.Encoding.ASCII);
         // set the file pointer to the beginning
         srRead.BaseStream.Seek(0, SeekOrigin.Begin);
         srRead.BaseStream.Position = 0;
         while (srRead.BaseStream.Position < srRead.BaseStream.Length) {
            char[] buffer = new char[1];
            srRead.Read(buffer, 0, 1);
            Console.Write(buffer[0].ToString());
            srRead.BaseStream.Position++;
         }
         srRead.DiscardBufferedData();
         srRead.Close();
要求

解决方案 »

  1.   

    建议,可以先用正则表达式将从文件中读出来的中文和英文分开,然后分别处理就可以了。匹配中文的正则表达式是:[\u4E00-\u9FA0]+。
      

  2.   

    talkinsmile(笑侃)兄:正则表达式我没有接触过,按照我的理解,如果分开的话,是不是要分成很多的Byte数组呢?实际上我只是需要在分割的地方注意不将中文分开就行了.有没有其他的方法呢?
      

  3.   

    你可以用StreamReader srReadLine = new StreamReader(
                (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
             System.Text.Encoding.UTF8); or unicode
    然后用streamReader.read方法,就不会把汉字分开