Java.io.BufferedReader.read() 方法
描述
java.io.BufferedReader.read(char[] cbuf, int off, int len) 方法将 len 个字符读入指定的数组,从偏移量 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.tutorialspoint; 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**************