以下对象命名空间为System.Text.RegularExpressions 
先创建一个Regex对象
设定你的正则表达式
然后调用Match方法
参见
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemtextregularexpressionsregexclassmatchtopic.htm
返回一个Match对象
用Match对象的Index属性可以获得原始字符串中发现捕获的子字符串的第一个字符的位置

解决方案 »

  1.   

    那你只好考虑用TextReader的Read方法
    按照public virtual int Read(char[], int, int);方式来读取
    看行不行
      

  2.   

    FileStream fs = new FileStream(fileName);//FileStream默认的缓冲Buffer长度为4096
    BinaryStream br = new BinaryStream(fs);
    fs.Position = fs.Length -1;
    char c='x';//c='好';
    int i=fs.Length;//如果要优化就改写这个算法
    for (;i>=0;i--)
    {
      if (br.ReadChar()==c)
          break;
    }
    br.Close();
    fs.Close();return i;
      

  3.   

    不知道用seek的方法是否是把文件读到内存了,我觉得可能是吧。
      

  4.   

    Pengmg(Challey)可否详细一点?
    谢谢。刚刚接触文件操作不久。
      

  5.   

    byte[] dataBuffer = new byte[ONCE_COUNT];
    int nReadLen= 10;
    FileStream file = File.OpenRead(filename);
    int n   = file.Read(dataBuffer,0,file.Length); //buffer ,即是你要的
      

  6.   

    To boyyao(迷失在网络 (每天12小时在线)) :
      不好意思
    这几天,都没回复因为,有一个问题,没想通(后得到高人指定)
    现把思路告诉你
    --
    想说问题吧,因为你说文件很大
    不能一次全部读入
    所以,只能用Read方式,每次读取部分内容
    但,如何判断是否读到,你的特定字符呢?
    我认为,对这种大文件中特定字符,不可能是1个字符
    对吧,如果是多个字符
    就可能存在正好把你的定位字符读断了的情况
      例如:[===插入位置===]
    有可能,头一次读到[===插,而下一次才读到"入位置===]"
    这样,你就不可能找到你的定位字符了--解决方式
    根据你的定位字符的长度设定一个数组
    每次读取一定长度的字节后, // 组成string s1
    再读取和你定位字符长度相同的字节数  //组成 string s2
    把两次的结果组合起来,查找你的定位字符串 // s1+s2
    没找到
    继续读取一定度的字节 //string s3
    然后和刚才s2组合起来,判断是否存在定位字符  // s2 + s3
    不存在
    则再读取和你定位字符长度相同的字节数  //组成新 string s2

    以此类推----
    不知道我说清楚没有
      

  7.   

    不好 意思.好几天没来csdn了 .有点事情.不过还有一个问题.我的文件的特定位置通常在很后面的.
    就是这个文件位置比较后面的地方需要插入.
    如果是read方法是不是从文件头开始读取的?可否从文件尾巴读取?
    其实只要知道插入的位置就可以了.比如在第1099个字符处是插入位置.只要能得到这个数字就ok了.
      

  8.   

    read方法是从头读取的
    据我所知是不能从文件末尾读取得但你如何知道这个位置呢
    是确定的吗?
    哪的确是没有问题
    :)
      

  9.   

    http://expert.csdn.net/Expert/topic/1501/1501167.xml?temp=.2255365这个就是知道了位置后的插入方法。
    可是现在就是如何确定这个位置呢?
      

  10.   

    定位的方式我有说阿按照你的要求
    应该只能这么做(上面有详细的描述,Why do this)--解决方式
    根据你的定位字符的长度设定一个数组
    每次读取一定长度的字节后, // 组成string s1
    再读取和你定位字符长度相同的字节数  //组成 string s2
    把两次的结果组合起来,查找你的定位字符串 // s1+s2
    没找到
    继续读取一定度的字节 //string s3
    然后和刚才s2组合起来,判断是否存在定位字符  // s2 + s3
    不存在
    则再读取和你定位字符长度相同的字节数  //组成新 string s2

    以此类推
      

  11.   

    用这种定位怕效率太低了。不知道有没有这样的第3放组件?我觉得思路可以类似于写ini文件一样。在特定地地方写入特定的内容。