Java BufferedReader read()方法

java.io.BufferedReader.read(char[] cbuf, int off, int len) 用于将字符读入数组的一部分。

此方法通过重复调用基础流的read方法来读取字符。

如果满足以下条件之一,则该方法停止读取。

  • 已读取流中指定数量的字符。
  • 是否到达文件末尾。
  • ready()方法返回false。

1 语法

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

2 参数

cbuf:目标缓冲区。

off:读取的偏移量。

len:要读取的字符数。

3 返回值

返回一个整数字符。如果已到达流的末尾,则该方法返回-1。

4 示例 

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * java.io.BufferedReader.read(char[] cbuf, int off, int len)方法的例子
 */
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Demo {
    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("d:/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();
        }
    }
}

假设test.txt内容如下:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

输出结果为:

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

热门文章

优秀文章