功能簡介
PushBackReader允許將字符推回到流的字符流 reader
還記得PushBackInputStream中的原理么?
內部維護了一個數組,用來保存記錄 被回退掉的數據
PushBackReader的原理也是一樣的
對照下字段就可以發現端倪
同PushBackInputStream 一樣,他也是從后往前存放的
初始時,緩沖區為空 pos == length
隨着元素的增加,pos的位置往前移動
緩沖區一旦寫滿,將會拋出異常
總結
PushBackReader 與 PushBackInputStream實現的原理是一樣的
而且,而且,里面的很多方法的代碼(jdk1.8下)
都是幾乎一樣的,都是幾乎一樣的,都是幾乎一樣的
本文說的有些粗,因為很多代碼邏輯同PushBackInputStream
所以有興趣的,請參看之前PushBackInputStream 的介紹
如果不想深入,只需要清楚:
PushBackReader 是使用了裝飾器模式
內部有一個緩存區用來存儲被回退掉的內容
如果內容滿了不支持繼續回退寫緩存,會拋出異常
讀取的時候先從這個回退的緩沖區中讀取數據,然后再考慮從流中讀取