把流保存到一String变量,省下的用正则吧

解决方案 »

  1.   

    同意楼上的,先存为string,然后用正则表达式来查询。对流的操作不是很方便,尤其是查找!
      

  2.   

    前提你要知道你的流是否是文本的,如果是文本的可以转化成String在查找(当然要注意文件编码),如果比较大,且是文本和二进制混合的那种,那就得把要搜索的字符串通过
    Byte[] bytes= System.Text.Encoding.GetEncoding("GB2312"/*你需要的编码*/).GetBytes("[你要找的串]")
    转化为 byte Array
    列:
    string s="abcdefgh我在那里324234234234\r\nsdfsdfsdfasdfasdf";
    byte[] bytes= System.Text.Encoding.Unicode.GetBytes(s);
    string indexString= "我在那里";
    byte[] Fbytes= System.Text.Encoding.Unicode.GetBytes(indexString);
    int i= Array.IndexOf(bytes,Fbytes[0]);
    //这里之后需要循环判断一下。bytes 中i 开始到 Fbytes.Length 范围内是否都和 Fbytes中对应的2进制匹配。
      

  3.   

    还有一种方法就是你的流是2进制和文本混合的情况下,
    //都转化为 Base64 的 String 方式在找
    String bytes64Str= System.Convert.ToBase64String(bytes);
    String F64Str= System.Convert.ToBase64String(Fbytes);bytes64Str.indexof(F64Str);