对于一个文本文件 File file, 以下两者等价吗?
Reader reader=new InputStreamReader(new FileInputStream(file));
Reader reader=new FileReader(file);
好像我试了一下,没有任何区别,文本文件中含有中文。

解决方案 »

  1.   

    inputStreamReader应该是字节流,它读取的是二进制节码,
    而FileReader应该的是字符流 ,它读取的是字符,
      

  2.   

    FileReader是InputStreamReader的子类,设置了一些默认的缓冲区和字符编码,
    因此读文件的时候,这两个类的用的方法都是一样的
    但是InputStreamReader可以指定读入文件时候的编码,而FileReader用的是默认的编码,不能指定编码
    如果需要更大的灵活性就要用InputStreamReader,如果操作简单就用FileReader就可以了
      

  3.   

    KKK2007说的有理。
    大概明白了。不过这个编码的问题,一直没有搞明白,有没有比较好的资料?
      

  4.   

    首选 InputStreamReader如果你的程序在linux下面运行就知道区别了!
      

  5.   

    所谓字符编码就是读取文件的时候传递一个参数例如GBK,这个参数用于用指定编码读取数据,因为中文在客户端与服务器操作系统语言包不匹配的时候可能出现乱码的。