当前位置: 首页 > 教程 > Java IO流 >

Java Reader

精华
小牛编辑
92浏览
2023-03-14

1 什么是Java Reader

Java Reader是用于读取字符流的抽象类。子类必须实现的唯一方法是 read(char[],int,int) 和close() 。但是,大多数子类将覆盖某些方法以提供更高的效率和功能。

Reader的一些实现类:BufferedReader,CharArrayReader,FilterReader,InputStreamReader,PipedReader,StringReader

2 Java Reader的属性

修饰符 方法 描述
protected Object lock 用于同步此流上的操作的对象。

3 Java Reader的构造方法

修饰符 构造方法 描述
protected Reader() 创建了一个新的Reader,其关键部分将在Reader本身上进行同步。
protected Reader(Object lock) 创建一个新的Reader,其关键部分将在给定对象上同步。

4 Java Reader的方法

修饰符 方法 描述
abstract void close() 关闭流并释放与其关联的所有系统资源。
void mark(int readAheadLimit) 标记了流中的当前位置。
boolean markSupported() 告诉此流是否支持mark()操作。
int read() 读取一个字符。
int read(char[] cbuf) 将字符读入数组。
abstract int read(char[] cbuf, int off, int len) 将字符读入数组的一部分。
int read(CharBuffer target) 尝试将字符读入指定的字符缓冲区。
boolean ready() 告诉此流是否已准备好被读取。
void reset() 重置流。
long skip(long n) 跳过字符。

5 Java Reader的例子

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java Reader的例子
 */
import java.io.*;

public class Demo {

    public static void main(String[] args) {
        try {
            Reader reader = new FileReader("file.txt");
            int data = reader.read();
            while (data != -1) {
                System.out.print((char) data);
                data = reader.read();
            }
            reader.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

file.txt:

l love my country

输出结果为:

l love my country