java.io.BufferedReader.read(char[] cbuf, int off, int len)方法範例


java.io.BufferedReader.read(char[] cbuf, int off, int len) 方法讀取len個字元到一個具體確定的陣列,從偏移量off開始。此方法通過多次呼叫底層流的read方法讀取字元。

該方法停止讀取,如果執行下列操作之一為true。

  • 流的字元指定數量已讀。
  • 如果已經達到檔案的結束。
  • ready方法返回false。

宣告

以下是java.io.BufferedReader.read(char[] cbuf, int off, int len) 方法的宣告

public int read(char[] cbuf, int off, int len)

引數

  • cbuf -- 目的緩衝區。

  • off -- 偏移量開始儲存字元。

  • len -- 要讀取的字元數。

返回值

該方法返回一個字元為整數。如果流已到達末尾,那麼該方法返回-1。

異常

  • IOException -- -- 如果發生I/ O錯誤

例子

下面的例子顯示java.io.BufferedReader.read(char[] cbuf, int off, int len)方法的用法。

package com.yiibai;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

public class BufferedReaderDemo {
   public static void main(String[] args) throws Exception {
      
      InputStream is = null; 
      InputStreamReader isr = null;
      BufferedReader br = null;

      try{
         // open input stream test.txt for reading purpose.
         is = new FileInputStream("c:/test.txt");
         
         // create new input stream reader
         isr = new InputStreamReader(is);
         
         // create new buffered reader
         br = new BufferedReader(isr);
      
         // creates buffer
         char[] cbuf = new char[is.available()];
         
         // reads characters to buffer, offset 2, len 10
         br.read(cbuf, 2, 10);
         
         // for each character in the buffer
         for (char c:cbuf)
         {
            // if char is empty
            if(c == (char)0)
            {
               c='*';
            }
            // prints characters
            System.out.print(c);
         }
                  
      }catch(Exception e){
         e.printStackTrace();
      }finally{
         
         // releases resources associated with the streams
         if(is!=null)
            is.close();
         if(isr!=null)
            isr.close();
         if(br!=null)
            br.close();
      }
   }
}

假設有一個文字檔案c:/ test.txt,它具有以下內容。該檔案將被用作輸入在我們的範例程式:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

讓我們來編譯和執行上面的程式,這將產生以下結果:

**ABCDEFGHIJ**************