位置:首页 > Java技术 > Java.io包 > java.io.FilterReader.read(char[] cbuf, int off, int len)方法实例

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

java.io.FilterReader.read(char[] cbuf, int off, int len) 方法从偏移量off读取长度为len的字符放入数组中。

声明

以下是java.io.FilterReader.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.FilterReader.read(char[] cbuf, int off, int len)方法的用法。

package com.yiibai;

import java.io.FilterReader;
import java.io.Reader;
import java.io.StringReader;

public class FilterReaderDemo {
   public static void main(String[] args) throws Exception {
      
      FilterReader fr = null;
      Reader r = null;
      char[] cbuf = new char[6];
      int i=0;
      
      try{
         // create new reader
         r = new StringReader("ABCDEF");
          
         // create new filter reader
         fr = new FilterReader(r) {
         };
         
         // read data of len 4, to the buffer
         i = fr.read(cbuf, 2, 4);
         System.out.println("No. of characters read: "+i);
         
         // read till the end of the char buffer
         for(char c:cbuf)
         {
            // checks for the empty character in buffer
            if((byte)c==0)
               c='-';
            
            // prints
            System.out.print(c);
         }
      }catch(Exception e){
         
         // if any I/O error occurs
         e.printStackTrace();
      }finally{
         
         // releases system resources associated with this stream
         if(r!=null)
            r.close();
         if(fr!=null)
            fr.close();
      }
   }
}

让我们编译和运行上面的程序,这将产生以下结果:

No. of characters read: 4
--ABCD