JAVA基礎知識之CharArrayReader流

2021-08-22 00:26:14 字數 2098 閱讀 6967

api說明:該類實現了乙個可用作字元輸入流的字元緩衝區,即該類可利用字元緩衝區當做字元輸入流進行讀取工作

1)從指定字元陣列構造chararrayreader流物件

/**

* 利用指定字元陣列建立chararrayreader物件

* 本質是將字元陣列賦值給物件的字元緩衝區

*/public chararrayreader(char buf)

構造流程圖:

2)從指定字元陣列構造chararrayreader流物件,chararrayreader流從偏移量offset開始讀取,能讀取的最大長度值可以是leng或者buf.leng-offset的最小值

public chararrayreader(char buf, int offset, int length) 

this.buf = buf;

this.pos = offset;

this.count = math.min(offset + length, buf.length);

this.markedpos = offset;

}

構造示例圖:

/** 字元緩衝區 */

protected char buf;

/** 緩衝區當前位置 */

protected int pos;

/** 標記在緩衝區中的位置 */

protected int markedpos = 0;

/*** 緩衝區結束的索引,該索引或者之外沒有有效資料

* 即緩衝區的長度值

*/protected int count;

1)read():讀取單個字元並返回,當讀取到緩衝區末尾時,返回-1

public int read() throws ioexception 

}

2)read(char b, int off, int len):讀取最多len個字元到目標陣列中,返回實際讀取的字元數,當讀取到緩衝區末尾時,返回-1

public int read(char b, int off, int len) throws ioexception  else if (len == 0) 

if (pos >= count)

if (pos + len > count)

if (len <= 0)

system.arraycopy(buf, pos, b, off, len); //從字元緩衝區中讀取len個位元組到目標陣列中

pos += len; //修改字元緩衝區當前位置

return len;}}

/**

*關閉流並釋放資源--本質是將緩衝區賦值為null,則該流其它方法都不能使用

*根本就沒有呼叫過系統資源,因此關閉是無效的?但是一旦關閉在呼叫其他方法,就會拋異常

*/public void close()

/** 確保流不被關閉 */

private void ensureopen() throws ioexception

從api說明以及其實例域和方法來看,其就是利用了乙個字元陣列建立字元緩衝區而後充當所謂的字元緩衝流進行字元讀取工作,本質沒有與底層的檔案這些建立聯絡對該流在網上進行過諮詢,解釋為該流可以作為臨時的字元陣列記憶體使用,執行結束後自動刪除--因為個人暫未在實際專案中暫未使用到這個流,因此對此答案也無法確信,只能先理解其功能,至於具體的作用和什麼時候使用,待以後了解了再補充

java 基礎知識

1.複製。賦值操作。就是先將其本身加乙個變數再賦值給其本身。如a b就是a a b 2.比較兩個值或者說是位址是否相同 指向同乙個物件 和 或 3.操作符是if else操作的縮寫,如果 右邊判斷為true則返回 左邊的計算結果。右邊錯誤,返回 右邊的計算結果。在class09裡面有例子。4.流程控...

Java基礎知識

1 物件導向的特徵有哪些方面 1.抽象 抽象就是忽略乙個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。2.繼承 繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用...

JAVA基礎知識

一 關鍵字 由以下關鍵字修飾的變數 方法和類所具有的特性如下 public 包內及包外的任何類中均可訪問 private 包內及包外的任何類中均無權訪問 protected 包內的任何類以及包外的那些繼承了此類的子類中均可訪問 friendly 如果不以如上關鍵字修飾,則預設為friendly型別,...