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接口 |