[二十三]JavaIO之PushbackReader
阿新 • • 發佈:2018-09-13
tran -a ref 從後往前 裝飾器模式 裝飾 數組 gray inpu
還記得PushBackInputStream中的原理麽?
內部維護了一個數組,用來保存記錄 被回退掉的數據
PushBackReader的原理也是一樣的
對照下字段就可以發現端倪
同PushBackInputStream 一樣,他也是從後往前存放的
初始時,緩沖區為空 pos == length
隨著元素的增加,pos的位置往前移動
緩沖區一旦寫滿,將會拋出異常
讀取的時候先從這個回退的緩沖區中讀取數據,然後再考慮從流中讀取
功能簡介
PushBackReader允許將字符推回到流的字符流 readerPushBackReader 是一個裝飾器模式最尋常的樣子 FilterReader 是抽象的裝飾器模式 Decoder Reader是抽象構建 Component PushbackReader是具體的裝飾器類 ConcreteDecoder 其他的具體的Reader的子類,則是需要具體裝飾的對象 |
FilterReader就是為了抽象的Decorator而存在的 它內部有一個Reader in 然後所有的其他方法都是無差別的轉發到了in上 |
總結
PushBackReader 與 PushBackInputStream實現的原理是一樣的 而且,而且,裏面的很多方法的代碼(jdk1.8下) 都是幾乎一樣的,都是幾乎一樣的,都是幾乎一樣的 本文說的有些粗,因為很多代碼邏輯同PushBackInputStream 所以有興趣的,請參看之前PushBackInputStream 的介紹 如果不想深入,只需要清楚: PushBackReader 是使用了裝飾器模式 內部有一個緩存區用來存儲被回退掉的內容 如果內容滿了不支持繼續回退寫緩存,會拋出異常[二十三]JavaIO之PushbackReader