“你好,阿米戈!你已經使用BufferedReader和InputStreamReader類很長時間了。現在讓我們來看看它們到底做了什麼。”
InputStreamReader類是從InputStream接口到Reader接口的經典適配器。這裡也沒什麼可補充的。
但簡而言之,這就是發生的事情。當您從InputStreamReader對象請求(讀取)下一個字符時,它會從傳遞給構造函數的InputStream中讀取幾個字節,並將它們作為一個字符返回。
但是 Reader 並不是最方便使用的對象。往往我們需要的不是一次讀取用戶輸入的所有字符,而是將這些字符拆分成行。
“但是 Reader 類有一個read (CharBuffer s) 方法。我們不能使用它嗎?”
“此方法以緩衝區大小的塊讀取數據,並將它們放入 CharBuffer 對像中。”
文本通常分為幾行。所以 read(CharBuffer s) 方法可能一次讀取多行。如果我們需要精確地閱讀文本直到一行的結尾(即一行中的所有字符直到換行符),最好尋找其他內容。並且確實存在另一種方法。在BufferedReader類中。
BufferedReader類是 Reader 之上的一個方便的結構,它有一個非常方便的方法:readLine ()。這種方法讓我們一次性從 Reader 中讀取整行文本。當您在代碼中調用 readLine 時,它會從 Reader 對像中讀取字符,直到遇到換行符。一旦遇到換行符,該方法就會將這些字符粘合在一個字符串中並返回它。
“我經常使用它,但我不知道它是如何工作的。現在我知道了。謝謝,金。”
GO TO FULL VERSION