1。为什么?答:不知道:(
2。保存到字符串?答:StreamReader sr = new StreamReader( Filename ); string str = sr.ReadToEnd;sr.Close();

解决方案 »

  1.   

    用r.ReadByte()是读出100个字节的2进制,有很多字节在unicode并没有对应可显示字符,所以无法输出。
      

  2.   

    回 fsp666666(嗷嗷地费戈):
      用你的方法和我用ReadChar()读出的结果一样~~~~~:(
      
      回ncount(基督山伯爵):
      读出的不是二进制吧,就算你说的对,那么没有对应字符就不显示.那有的应该显示吧,可是只显示一点儿,这是为什么?
      期待大人出现~~~~~~
      怎么才能实现啊,就像用文本方式打开.exe文件所得到的字符串!!!!!!
      

  3.   

    char 占8字节,byte占4字节  
    ReadChar()  时如果读取流不是字符编码,那么会做抛弃处理,也就是说读不出任何东西
    而byte是二进制流,不是字符也可以读出 
     这就是问题所在
      

  4.   

    哦,但是我用文本打开.exe文件时,明明看见还有其他字符,但为什么我就算读1000个还是只有"
    MZ"两个字符呢?!
       还有就是怎么才能实现像用文本方式打开.exe文件所看到的字符串!!!!!!
      

  5.   

    回JasonHeung(拥有一切也只不过这样笑着哭)结果一样的!
      

  6.   

    因为ReadChar 是按文本模式读取的么,对于非文本的字符会自动过滤,自然读不进来了要读进字符串,首先你要确定读进来的数据按什么方式编码然后先按二进制方式读取,然后用Encoding.GetString转成字符串
      

  7.   

    你看到的 "791030..."并不是字符串,而是byte的值要转成这种格式,只能自己手工转byte[]的值