我有个疑问,一直不清楚,特地来问问大家:
  既然字符流Reader和Writer可以进行字符处理了,干嘛还要InputStreamReader和OutputStreamWriter呢,这两个类主要的用途是什么.

解决方案 »

  1.   

    InputStreamReader 是字节流通向字符流的桥梁.
    OutputStreamWriter 是字符流通向字节流的桥梁.
      

  2.   

    InputStreamReader, OutputStreamWriter
    一般都很少用,主要用在对文件的读写吧
      

  3.   

    Reader和Writer用来处理字符流,就是说可以用来处理文本文件
    InputStreamReader和OutputStreamWriter用来处理字节流,就是说可以处理一切文件。
    比如说,用java处理图片的复制操作,InputStreamReader和OutputStreamWriter可以,而Reader和Writer却不可以,因为图片是字节形式而不是字符形式的
      

  4.   

    OutputStreamWriter实现字符的编码.
    它把字符以字节数组的形式转化为对应的编码.
      

  5.   

    但是处理字节文件,不用把他转换成字符啊.如果是处理字符文件,直接用Reader和Writer就可以了.我总是觉得这两个类有点多余.楼上的说的也不对,字节文件直接用FileInputStream就可以了哦.
      

  6.   

    兄弟们都答的那么全面,我只能举个例子了:
    有时候需要用到字节数组流:ByteArrayInputStream和ByteArrayOutputStream
    而你希望一次读写一个字符
    显然字节流是不能满足需求的
    这时候就要用的字符流
    你怎么转换为字符流呢
    当然需要一个处理流作为桥梁
    来实现转换
    InputStreamReader 和OutputStreamWriter 
    就是这个桥梁
      

  7.   


    不好意思,看错了,呵呵,以为是FileInputStream,不好意思
      

  8.   

    Read,Writer是处理字符文本的,InputStreamReader、OutputStreamWriter是用于字节流和字符流转换的类
      

  9.   

      InputStream和OutPutStream是用于面向字节的IO;Reader和Writer则提供兼容Unicode和面向字符的IO功能;
      有时候我们必须把来自“字节”层次结构中的类和面向“字符”中的类结合起来;为了达到这个目的可以使用“适配器”类,InPutStreamReader可以把InputStream转化为Reader,OutPutStreamWriter可以把OutPutStream转化为Writer
      

  10.   

    public InputStreamReader(InputStream in); /*其形参in是字节流类,而InputStreamReader的返回值是字符流类,因此InputStreamReader就可以把字节流in转换成字符流处理。*/
     在读取字符流时,如果不是来自于本地的,比如说来自于网络上某处的与本地编码方式不同的机器,那么我们在构造输入流时就不能简单地使用本地缺省的编码方式,否则读出的字符就不正确;为了正确地读出异种机上的字符,我们应该使用下述方式构造输入流对象:
    public InputStreamReader(InputStream in,String enc) throws UnsupportedEncodingException;/*enc是编码方式,就是从字节流到字符流进行转换时所采用的编码方式,例如 ISO8859-1,UTF-8,UTF-16等等*/例如:  
        ir = new InputStreamReader(is, "8859_1");采用ISO 8859_1编码方式,这是一种映射到ASCII码的编码方式,可以在不同平台之间正确转换字符。 public OutputStreamWriter(OutputStream out);/*out是字节流,而OutputStreamReader是字符流 */ public OutputStreamWriter(OutputStream out,String enc) throws UnsupportedEncodingException; //enc是编码方式   InputStreamReader和OutputStreamWriter的方法: