TextReader,StreamReader,StringReader
都派生自Stream类,他们有着一样的基础流,只是在流的外层做了不同的处理而已。
相关的细节请查询.net Framework  文档!!!
谢谢!
祝你好运!

解决方案 »

  1.   

    首先你要了解编码的相关的知道,每个字符在计算机中都是用二进制表示的,至于什么样的二进制组合表示什么字符就是编码的工作了,ascii就是其中一种编码,这里假设你的'A'是使用ascii表示,因此他在计算机中就是1000001(即十进制中的65),当你把转换成字节并写入流中再写到文件中,他都将是1000001(除非你在程序中想将他用别的编码表示如utf-8),所以在文件中实际上01000001,当你用别的程序打开他的时候,程序将这个二进制流读出,然后要在显示器上显示出来,在这里假设用写字板打开,首先写字板会把这个二进制流读出来,然后他要决定怎么样显示,因为写字板的功能就是显示字符(包括汉字),所以他会在ascii码表中找到相就的字符,并显示
      

  2.   

    经过大家的帮助,我认为是这样的:
    'A' 系统默认是字符,在内存中存放是00000000 01000001,把他转化成字节后,
    存放为01000001,然后把他以字节的形式写入到文本文件中,当使用Notepad打开
    文件时,他把这个字节流读出来,显示经过编码之后从字节流得到的字符串。
      

  3.   

    我教你一招,你可以在运行里cmd->debug SyncDemo.txt.然后敲D,就可以看到SyncDemo.txt的二进制编码了。
    其实任何问建立都是二进制流只是Notepad这种软件能按不同格式来读取它吧了。
    附带:Notepad可以读ascii,unicode,UTF-8等各种格式,在ascii不需要任何文件头。
    unicode用FF FE作文件头,表示后面的是以unicode编码。UTF-8是以EF BB BF为文件头,表示后面的编码都是UTF-8编码的。
      

  4.   

    0B13:0100  41 20 69 73 20 61 20 66-69 72 73 74 20 63 68 61   A is a first cha
    0B13:0110  72 61 63 74 65 72 2E 89-3E D5 96 BB 34 00 02 0B   racter..>...4...
    0B13:0120  C7 96 00 74 03 BB 00 98-BE 77 97 8B 3E B9 98 B9   ...t.....w..>...
    0B13:0130  08 00 E8 12 00 80 3C 20-74 09 B0 2E AA B9 03 00   ......< t.......
    0B13:0140  E8 04 00 32 C0 AA C3 B4-00 8A F1 80 FC 01 74 09   ...2..........t.
    0B13:0150  B4 00 8A 07 E8 DC E2 74-02 FE C4 AC 3C 3F 75 27   .......t....<?u'
    0B13:0160  80 FC 00 74 20 80 FC 01-75 22 3A CE 75 05 80 3C   ...t ...u":.u..<
    0B13:0170  20 74 0A 80 3C 3F 75 14-83 F9 01 76 0F 8A 07 AA    t..<?u....v....没输入一次D结果都不一样啊。
    现在谁来给我解决一下第二个问题啊???
      

  5.   

    TextReader表示可读取连续字符系列的阅读器StreamReader是TextReader的子类,使其以一种特定的编码从字节流中读取字符。StreamReader 的默认编码为 UTF-8。而不是当前系统的 ANSI 。StringReader也是TextReader的子类。实现从字符串进行读取的 TextReader。