白玉成的專欄

          Eclipse,讓我歡喜讓我憂!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            17 隨筆 :: 0 文章 :: 6 評論 :: 0 Trackbacks
          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          BufferedReader

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

          可指定緩沖區尺寸或使用缺省尺寸。該缺省尺寸對大多數用途來說是足夠的。

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

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

          通過用適當的 BufferReader 替換每個 DatainputStream 可以使使用 DataInputStream 作為文本輸入的程序本地化。

          類 java.io.BufferedReader


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


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

          構造子索引

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

          方法索引

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

          構造子

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

           

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

           

          參數:
          in - 一個 Reader

          方法

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

           

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

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

           

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

           

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

           

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

           

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

           

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

           

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

           

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

           

          拋出: OException
          如果發生一 I/O 錯誤。
          覆蓋:
          類 Reader 中的 close
          posted on 2008-11-24 15:01 白玉成 閱讀(463) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 岑巩县| 四子王旗| 昆山市| 浦江县| 张北县| 石屏县| 虹口区| 祥云县| 沁源县| 威海市| 江门市| 通山县| 荥阳市| 临沭县| 来安县| 庆元县| 林甸县| 阿荣旗| 腾冲县| 宜州市| 北宁市| 游戏| 饶平县| 京山县| 无极县| 招远市| 黔西县| 郑州市| 陇川县| 柳河县| 石棉县| 曲阳县| 平湖市| 株洲县| 泸水县| 江孜县| 盐池县| 宜川县| 大方县| 青川县| 莒南县|