W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
java.lang.Object
|---java.io.Reader
|---|---java.io.BufferedReader
public class BufferedReader
extends Reader
從字符輸入流中讀取文本,緩沖字符,以便高效讀取字符、數(shù)組和行。
可以指定緩沖區(qū)大小,也可以使用默認(rèn)大小。 對于大多數(shù)用途,默認(rèn)值足夠大。
通常,由 Reader 發(fā)出的每個讀取請求都會導(dǎo)致對底層字符或字節(jié)流發(fā)出相應(yīng)的讀取請求。 因此,建議將 BufferedReader 包裝在 read() 操作可能成本高昂的任何 Reader 周圍,例如 FileReaders 和 InputStreamReaders。 例如,
BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
將緩沖來自指定文件的輸入。 如果沒有緩沖,每次調(diào)用 read() 或 readLine() 都可能導(dǎo)致從文件中讀取字節(jié),轉(zhuǎn)換為字符,然后返回,這可能非常低效。
使用 DataInputStreams 進(jìn)行文本輸入的程序可以通過將每個 DataInputStream 替換為適當(dāng)?shù)?BufferedReader 來本地化。
Since:
JDK1.1
從類 java.io.Reader 繼承的字段 |
---|
lock |
構(gòu)造函數(shù) | 描述 |
---|---|
BufferedReader(Reader in) | 創(chuàng)建一個使用默認(rèn)大小的輸入緩沖區(qū)的緩沖字符輸入流。 |
BufferedReader(Reader in, int sz) | 創(chuàng)建一個使用指定大小的輸入緩沖區(qū)的緩沖字符輸入流。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | close() | 關(guān)閉流并釋放與其關(guān)聯(lián)的任何系統(tǒng)資源。 |
StreamString | lines() | 返回一個 Stream,其元素是從此 BufferedReader 讀取的行。 |
void | mark(int readAheadLimit) | 標(biāo)記流中的當(dāng)前位置。 |
boolean | markSupported() | 告訴這個流是否支持 mark() 操作,它支持。 |
int | read() | 讀取單個字符。 |
int | read(char[] cbuf, int off, int len) | 將字符讀入數(shù)組的一部分。 |
String | readLine() | 讀取一行文本。 |
boolean | ready() | 告訴這個流是否準(zhǔn)備好被讀取。 |
void | reset() | 將流重置為最新標(biāo)記。 |
long | skip(long n) | 跳過字符。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
從類 java.io.Reader 繼承的方法 |
---|
read, read |
public BufferedReader(Reader in, int sz)
創(chuàng)建一個使用指定大小的輸入緩沖區(qū)的緩沖字符輸入流。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 輸入流 |
sz | 輸入緩沖區(qū)大小 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 sz <= 0 |
public BufferedReader(Reader in)
創(chuàng)建一個使用默認(rèn)大小的輸入緩沖區(qū)的緩沖字符輸入流。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 輸入流 |
public int read() throws IOException
讀取單個字符。
覆蓋:
在類輸入流中讀取
返回:
讀取的字符,為 0 到 65535 (0x00-0xffff) 范圍內(nèi)的整數(shù),如果已到達(dá)流的末尾,則為 -1
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤 |
public int read(char[] cbuf, int off, int len) throws IOException
將字符讀入數(shù)組的一部分。
該方法實(shí)現(xiàn)了 Reader 類對應(yīng)的 [Reader#read(char], int, int) 方法的通用約定。 作為額外的便利,它嘗試通過重復(fù)調(diào)用底層流的讀取方法來讀取盡可能多的字符。 此迭代讀取將繼續(xù),直到滿足以下條件之一:
如果對底層流的第一次讀取返回 -1 以指示文件結(jié)束,則此方法返回 -1。 否則,此方法返回實(shí)際讀取的字符數(shù)。
鼓勵但不要求此類的子類嘗試以相同的方式讀取盡可能多的字符。
通常,此方法從該流的字符緩沖區(qū)中獲取字符,并根據(jù)需要從底層流中填充它。 但是,如果緩沖區(qū)為空,標(biāo)記無效,并且請求的長度至少與緩沖區(qū)一樣大,則此方法將直接從底層流中讀取字符到給定數(shù)組中。 因此冗余的 BufferedReader 不會不必要地復(fù)制數(shù)據(jù)。
指定者:
在類讀取流中閱讀
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
cbuf | 目標(biāo)緩沖區(qū) |
off | 開始存儲字符的偏移量 |
len | 要讀取的最大字符數(shù) |
返回:
讀取的字符數(shù),如果已到達(dá)流的末尾,則為 -1
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤 |
public String readLine() throws IOException
讀取一行文本。 一行被認(rèn)為是由換行符 ('\n')、回車符 ('\r') 或緊跟換行符的回車符中的任何一個終止的。
返回:
包含行內(nèi)容的字符串,不包括任何行終止字符,如果已到達(dá)流的末尾,則為 null
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤 |
public long skip(long n) throws IOException
跳過字符。
覆蓋:
skip 類輸入流
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
n | 要跳過的字符數(shù) |
返回:
實(shí)際跳過的字符數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 n 為負(fù)數(shù)。 |
IOException | 如果發(fā)生 I/O 錯誤 |
public boolean ready() throws IOException
告訴這個流是否準(zhǔn)備好被讀取。 如果緩沖區(qū)不為空,或者底層字符流已準(zhǔn)備好,則緩沖字符流已準(zhǔn)備好。
覆蓋:
準(zhǔn)備好類輸入流
返回:
如果保證下一個 read() 不會阻塞輸入,則為 true,否則為 false。 請注意,返回 false 并不能保證下一次讀取將阻塞。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤 |
public boolean markSupported()
告訴這個流是否支持 mark() 操作,它支持。
覆蓋:
在閱讀器類中標(biāo)記支持
返回:
當(dāng)且僅當(dāng)此流支持標(biāo)記操作時才為 true。
public void mark(int readAheadLimit) throws IOException
標(biāo)記流中的當(dāng)前位置。 對 reset() 的后續(xù)調(diào)用將嘗試將流重新定位到該點(diǎn)。
覆蓋:
在類輸入流中標(biāo)記
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
readAheadLimit | 在保留標(biāo)記的同時限制可以讀取的字符數(shù)。 在讀取達(dá)到此限制或超過此限制的字符后嘗試重置流可能會失敗。 大于輸入緩沖區(qū)大小的限制值將導(dǎo)致分配一個大小不小于限制的新緩沖區(qū)。 因此,應(yīng)謹(jǐn)慎使用較大的值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 readAheadLimit < 0 |
IOException | 如果發(fā)生 I/O 錯誤 |
public void reset() throws IOException
將流重置為最新標(biāo)記。
覆蓋:
在輸入流類中重置
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果流從未被標(biāo)記,或者標(biāo)記已失效 |
public void close() throws IOException
從班級復(fù)制的描述:讀者
關(guān)閉流并釋放與其關(guān)聯(lián)的任何系統(tǒng)資源。 關(guān)閉流后,進(jìn)一步的 read()、ready()、mark()、reset() 或 skip() 調(diào)用將引發(fā) IOException。 關(guān)閉以前關(guān)閉的流沒有效果。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
指定者:
關(guān)閉類輸入流
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤 |
public StreamString lines()
返回一個 Stream,其元素是從此 BufferedReader 讀取的行。 Stream 是惰性填充的,即在終端流操作期間只讀發(fā)生。
終端流操作執(zhí)行過程中不得對閱讀器進(jìn)行操作。否則,終端流操作的結(jié)果是不確定的。
執(zhí)行終端流操作后,不能保證閱讀器將處于讀取下一個字符或行的特定位置。
如果在訪問底層 BufferedReader 時拋出 IOException,它將被包裝在 UncheckedIOException 中,該異常將從導(dǎo)致讀取發(fā)生的 Stream 方法中拋出。如果在關(guān)閉的 BufferedReader 上調(diào)用此方法,將返回一個 Stream。該流上的任何需要在關(guān)閉后從 BufferedReader 讀取的操作都將導(dǎo)致拋出 UncheckedIOException。
返回:
提供此 BufferedReader 描述的文本行的 Stream<String>
Since:
1.8
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: