如题 

解决方案 »

  1.   

    字节流就是流里的最小单位是byte,一个byte所包含的信息的-128到127. 仅此而已。
    字符流就是流里的最小单位是char,一个char表示一个符号,如数字,字面,标点等等。要表示一个符号,就必须知道这个符号的编码方式。如ascii,utf-8, gb2312等等。就是考这些编码方式将符号编码之后在存入char变量中。
    换个角度说,我们看一个字节流时,只关注每个字节是多大。但是在关注字符流时,我们需要从这个字符有多大,编码格式是什么,来看出这个字符表示一个什么符号。
      

  2.   

    1)就是字节和字符的区别啊
    2)InputStream OutputStream是针对字节操作的  Reader Writer是针对字符操作的
      

  3.   

    字节流与字符流主要的区别是他们的的处理方式
    字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
    但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
    这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
    在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的在从字节流转化为字符流时,实际上就是byte[]转化为String时,
    public String(byte bytes[], String charsetName)
    有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
    而在字符流转化为字节流时,实际上是String转化为byte[]时,
    byte[]    String.getBytes(String charsetName)
    也是一样的道理至于java.io中还出现了许多其他的流,按主要是为了提高性能和使用方便,
    如BufferedInputStream,PipedInputStream等