從本章開始,我們開始對java io中的“字元流”進行學習。首先,要學習的是CharArrayReader。學習時,我們先對CharArrayReader有個大緻了解,然後深入了解一下它的源碼,最後通過示例來掌握它的用法。
CharArrayReader 函數清單


Reader是CharArrayReader的父類,我們先看看Reader的源碼,然後再學CharArrayReader的源碼。
1. Reader源碼分析(基于jdk1.7.40)


2. CharArrayReader 源碼分析(基于jdk1.7.40)


說明:
CharArrayReader實際上是通過“字元數組”去儲存資料。
(01) 通過 CharArrayReader(char[] buf) 或 CharArrayReader(char[] buf, int offset, int length) ,我們可以根據buf數組來建立CharArrayReader對象。
(02) read()的作用是從CharArrayReader中“讀取下一個字元”。
(03) read(char[] buffer, int offset, int len)的作用是從CharArrayReader讀取字元資料,并寫入到字元數組buffer中。offset是将字元寫入到buffer的起始位置,len是寫入的字元的長度。
(04) markSupported()是判斷CharArrayReader是否支援“标記功能”。它始終傳回true。
(05)
mark(int
readlimit)的作用是記錄标記位置。記錄标記位置之後,某一時刻調用reset()則将“CharArrayReader下一個被讀取的位置”重
置到“mark(int
readlimit)所标記的位置”;也就是說,reset()之後再讀取CharArrayReader時,是從mark(int
readlimit)所标記的位置開始讀取。
關于CharArrayReader中API的詳細用法,參考示例代碼(CharArrayReaderTest.java):


運作結果:
0 : a
1 : b
2 : c
3 : d
4 : e
buf=klmno
buf=fghij