Java InputStream层次分析

来源:互联网 发布:玄空飞星软件下载 编辑:程序博客网 时间:2024/05/21 17:43

Java io使用的是设计模式中的装饰者模式,装饰者模式的结构应当为:

装饰者组织结构图

对应到Java InputStream上,则为:

IO结构图

对比一下InputStream和Reader的区别:核心是,前者读入的是字节,后者读入的是字符。

不论是InputStream还是Reader,数据源的数据在内存中都是二进制码的形式,但是对于字节流,一次读取一个字节的数据,并返回这一个字节的二进制码对应的整数值。(以下是猜测)而字符流,它是将二进制码转换为字符以后再返回该字符串对应的ascii码整数值。数据的二进制码和ascii码整数值是不一样的,比如数字1,如果是int型,则在内存中为0x00000001,而它如果作为一个字符“1”,对应的ascii码应当为0x31。

0 0