DataInput | 接口用于从二进制流中读取字节,并根据全部 Java 基本类型数据进行重构 |
DataOutput
|
接口用于将数据从任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流 |
![]() |
![]() |
DataInputStream和DataOutputStream 经过实现DataInput 和DataOut接口 而且借助于装饰器模式,对InputStream和OutputStream的read方法加强出来多个版本 能够读取基本数据类型 |
继承自InputStream中的read的两个版本方法
都是直接使用原方法
|
能够看到,去掉read和个别独有的方法外 其他方法都来自DataInput ![]() |
而其余的方法都是须要依赖于read的两个版本的方法 好比下面这几个,都是对in.read调用的基础上,进行功能的加强 若是说都不使用in.read方法,那还叫什么装饰器模式 ![]() |
write两个版本都来自OutputStream,没有功能加强 flush也是如此,没有加强 ![]()
不过DataOutputStream 内部有一个计数器,用于记录已经读取的个数
incCount方法用于计数
![]() |
其他来自DataOutput的方法,都是借助于装饰器模式对于write方法的加强![]() 好比 ![]() |
必定要理解装饰器模式 是你还有你 在使用你的能力的时候,顺便在加强一下,因此内部天然会须要借助于原来的方法 |
两条主线:装饰器模式功能加强加强的功能来自DataXXXput接口 |