白玉成的專欄

          Eclipse,讓我歡喜讓我憂!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            17 隨筆 :: 0 文章 :: 6 評(píng)論 :: 0 Trackbacks

          BufferedReader

          從字符輸入流中讀取文本并將字符存入緩沖區(qū)以便能提供字符、數(shù)組和線段的高效讀取。

          可指定緩沖區(qū)尺寸或使用缺省尺寸。該缺省尺寸對(duì)大多數(shù)用途來說是足夠的。

          通常, Reader 的每個(gè)讀請(qǐng)求引起由基本字符或字節(jié)流組成的相關(guān)的讀請(qǐng)求。因此,建議將 BufferedReader 和代價(jià)太高的 read() 操作的 Reader 來打包,如 FileReaders 和 InputStreamReaders 。例如,

           BufferedReader in
          = new BufferedReader(new FileReader("foo.in"));
          
          緩沖指定文件的輸入。若無緩沖,則每個(gè) read() 或 readLine() 調(diào)用將字節(jié)從文件中讀出、轉(zhuǎn)換為字符,然后返回,這種處理方法的效率是非常低的。

          通過用適當(dāng)?shù)?BufferReader 替換每個(gè) DatainputStream 可以使使用 DataInputStream 作為文本輸入的程序本地化。

          類 java.io.BufferedReader


            java.lang.Object
             |
             +----java.io.Reader
                     |
                     +----java.io.BufferedReader


          public class BufferedReader
          extends Reader
          下列類的父類:
          LineNumberReader
          出現(xiàn)于:
          JDK1.1
          參見:
          FileReader, InputStreamReader

          構(gòu)造子索引

          BufferedReader(Reader)
          創(chuàng)建使用缺省尺寸輸入緩沖區(qū)的緩沖字符輸入流。
          BufferedReader(Reader, int)
          創(chuàng)建使用指定尺寸輸入緩沖區(qū)的緩沖字符輸入流。

          方法索引

          close()
          關(guān)閉流。
          mark(int)
          標(biāo)記此流的當(dāng)前位置。
          markSupported()
          報(bào)告此流是否支持 mark() 實(shí)現(xiàn)的操作。
          read()
          讀取單一字符。
          read(char[], int, int)
          將若干字符讀入一個(gè)數(shù)組中。
          readLine()
          讀取一文本行。
          ready()
          報(bào)告此流是否讀就緒。
          reset()
          將該流復(fù)位為最近標(biāo)記。
          skip(long)
          跳過若干字符。

          構(gòu)造子

          BufferedReader
           public BufferedReader(Reader in,
          int sz)
          
          創(chuàng)建使用指定尺寸輸入緩沖區(qū)的緩沖字符輸入流。

           

          參數(shù):
          in - 一個(gè) Reader
          sz - 輸入緩沖尺寸
          拋出: IllegalArgumentException
          若 sz <= 0
          BufferedReader
           public BufferedReader(Reader in)
          
          創(chuàng)建使用缺省尺寸輸入緩沖區(qū)的緩沖字符輸入流。

           

          參數(shù):
          in - 一個(gè) Reader

          方法

          read
           public int read() throws IOException
          
          讀取單一字符。

           

          拋出: OException
          如果發(fā)生一 I/O 錯(cuò)誤。
          覆蓋:
          類 Reader 中的 read
          read
           public int read(char cbuf[],
          int off,
          int len) throws IOException
          
          將若干字符讀入一個(gè)數(shù)組中。

          通常該方法從該流的字符緩沖區(qū)中獲取字符,必要時(shí)用基本流填充。然而, 若緩沖區(qū)為空、標(biāo)記無效、請(qǐng)求長度至少與緩沖區(qū)相同大,則該方法將從基本流中將字符直接讀入給定數(shù)組。因此冗余的 BufferedReader 不復(fù)制不必要的數(shù)據(jù)。

           

          參數(shù):
          cbuf - 目的緩沖區(qū)
          off - 開始存儲(chǔ)字符的偏移量。
          len - 讀取的最大字符數(shù)
          返回值:
          讀取字節(jié)數(shù),若已讀到流尾則返回 -1 。
          拋出: OException
          如果發(fā)生一 I/O 錯(cuò)誤。
          覆蓋:
          類 Reader 中的 read
          readLine
           public String readLine() throws IOException
          
          讀取一文本行。換行 ('\n')、回車 ('\r') 或緊跟著換行的回車符表示一行的終止。

           

          返回值:
          包含行內(nèi)容但不包括行終止符的字符串, 若已到達(dá)流尾則為 null 。
          拋出: OException
          如果發(fā)生一 I/O 錯(cuò)誤。
          skip
           public long skip(long n) throws IOException
          
          跳過若干字符。

           

          參數(shù):
          n - 待跳過的字節(jié)數(shù)
          返回值:
          實(shí)際跳過的字符數(shù)
          拋出: OException
          如果發(fā)生一 I/O 錯(cuò)誤。
          覆蓋:
          類 Reader 中的 skip
          ready
           public boolean ready() throws IOException
          
          報(bào)告此流是否已準(zhǔn)備讀。若緩沖區(qū)不為空,或者基本字符流就緒,就表明緩沖字符流就緒。

           

          拋出: OException
          如果發(fā)生一 I/O 錯(cuò)誤。
          覆蓋:
          類 Reader 中的 ready
          markSupported
           public boolean markSupported()
          
          報(bào)告此流是否支持 mark() 操作和支持哪一個(gè)操作。

           

          覆蓋:
          類 Reader 中的 markSupported
          mark
           public void mark(int readAheadLimit) throws IOException
          
          標(biāo)記此流的當(dāng)前位置。接著調(diào)用 reset() 重新將流定位到該點(diǎn)。

           

          參數(shù):
          readAheadLimit - 保持標(biāo)記不便時(shí),讀取的字符數(shù)的限制。讀取這些字符之后,復(fù)位流的試圖可以失敗。限制值大于輸入緩沖區(qū)將使所分配緩沖區(qū)的尺寸不小于限制。因此慎用大值。
          拋出: IllegalArgumentException
          若 readAheadLimit <0
          Throws: OException
          如果發(fā)生一 I/O 錯(cuò)誤。
          覆蓋:
          類 Reader 中的 mark
          reset
           public void reset() throws IOException
          
          將該流復(fù)位為最近標(biāo)記。

           

          拋出: OException
          若該流仍未標(biāo)記或標(biāo)記非法
          覆蓋:
          類 Reader 中的 reset 。
          close
           public void close() throws IOException
          
          關(guān)閉流。

           

          拋出: OException
          如果發(fā)生一 I/O 錯(cuò)誤。
          覆蓋:
          類 Reader 中的 close 。
          posted on 2008-11-24 15:01 白玉成 閱讀(460) 評(píng)論(0)  編輯  收藏 所屬分類: Java

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 犍为县| 奉贤区| 平原县| 荥经县| 萨嘎县| 固安县| 麻栗坡县| 衡东县| 敦煌市| 开封县| 腾冲县| 筠连县| 花莲县| 额敏县| 伊吾县| 康乐县| 麦盖提县| 开阳县| 永定县| 西平县| 哈巴河县| 曲麻莱县| 广宁县| 禄劝| 濮阳县| 金门县| 丹寨县| 闽侯县| 三穗县| 怀来县| 武宣县| 延边| 垦利县| 绵阳市| 曲阳县| 宕昌县| 保定市| 镇赉县| 津南区| 石河子市| 杭锦旗|