Java文件操作问题:字节流和字符流有什么区别?
字节流是由字节组成的,字符流是由字符组成的.Java里字符由两个字节组成. 
 但是我在使用FileInputStream和FileWriter发现输出的结果是一样的.下面是两个代码文件:    
 file1:ByteStream.java 
 import   java.io.*; 
 public   class   ByteStream{ 
       public   static   void   main(String   args[])   throws   
IOException   { 
       File   inputFile   =   new   File( "E://A//partnovel.txt ");//定义文件,内容为: "She   went. " 
       FileInputStream   in   =   new   FileInputStream(inputFile); 
       //从输入流读数据,暂存于c,再写入输出流并显示输出流内容 
       int   c; 
       while((c   =   in.read())!=   -1){ 
                   System.out.print(c+ "> >  ");//每个字节之间加> > 符 
       } 
          in.close(); 
       } 
 } 
 file2:CharStream.java 
 import   java.io.*; 
 public   class   CharStream{ 
       public   static   void   main(String   arges[])throws   Exception{ 
             File   inputFile   =   new   File( "E://A//partnovel.txt ");////定义文件,内容为: "She   went. " 
             FileReader   in   =   new   FileReader(inputFile); 
             int   c; 
             while((c   =   in.read())   !=   -1){ 
                      System.out.print(c+ "> >  "); 
             } 
             in.close(); 
       } 
 } 
 他们的结果都是: 
 115> > 104> > 101> > 32> > 119> > 101> > 110> > 116> > 46> >    
 这是为什么?请高手指点!
------解决方案--------------------filereader是双字节的字符输入流,fileinputdream是单字符的字符输入流 
 FileReader 会做编码转换,FileInputStream会忠实于原始文件数据。任何形式的Reader都会涉及编码,你的程序只是因为使用了系统缺省编码(虽然在你看来没设过编码,和FileInputStream没区别)。    
 显示是另一回事,是显示给你的系统做的转换,如果在其他系统里就会显示其他东西。