一个偶然的机会,
一个高手问了我一个问题:java的io有什么特点。
一个简短的回答:字节流和字符流。
一个疑问:不懂,什么是字节流和字符流呢?
一点点茫然:不知如何回答,欲言又止,究竟是我回答错误还是高手有更好的理解?各位,有空能否给我一个满意的回答呢?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-20 15:21:15的汇总数据:
    注册日期:2003-12-20
    上次登录:2008-6-20
    发帖数:2                  发帖分:200                
    结贴数:0                  结贴分:0                  
    结贴率:0.00 %        结分率:0.00 %        
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    就是因为问题大,涉及的面广,所以觉得难回答。lz可以到网上找找资料:字节流与字符流主要的区别是他们的的处理方式
    字节流是最基本的,所有的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等
      

  3.   

    lz刚接触Java吧,刚开始都这样,
    你应该有Java的基础书籍吧,
    上面也有详细说明,
    自己多看看,多写点儿代码,
    以后就会自己慢慢明白的。
    闲在的时候到网上搜些资料,
    慢慢学吧。
      

  4.   

    io是java处理输入输出相关的包,里面的类/接口等都与之相关,没有io,java就不称之为一门语言。
      

  5.   

    你还是认为只有字节流比较好,呵呵
    因为字节流可以很容易的转化为指定编码的字符流,
    比如一个汉字用UTF-8编码占用了3个字节。
    GBK编码则只需要2个字节。
      

  6.   

     IO在开发过程中是很有用的,其实整个IO包也就两个东西,输入和输出,只是有些类是封装好了适用于某类对象的读写操作,是过程变得简单,楼主是新来的,看文档是最好的学习方式...
      

  7.   

    有一个问题诶,字符流是从输入中直接保留字符还是输入的是字节再转换成字符?
    比如对话框里要输入yes or no 那么你输Y时,程序读到的是Y还是Y的码?