Java Java.io.BufferedReader.read() 方法

  • 描述

    java.io.BufferedReader.read(char[] cbuf, int off, int len)方法将len字符读取到指定的数组中,该数组从offset off开始。此方法通过重复调用基础流的read方法来读取字符。
    如果满足以下条件之一,则该方法停止读取。
    • 已读取流中指定数量的字符。
    • 如果已到达文件末尾。
    • 由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.jc2182;
    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**************