位置:首頁 > Java技術 > Java.io包 > java.io.BufferedReader.read(char[] cbuf, int off, int len)方法實例

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**************