Java中IO框架——Reader/Writer源码解析

本文详细探讨了Java中的IO框架,重点关注Reader和Writer类。分析了Reader类的构造函数、属性和核心方法,如read()、skip()、ready()及close()等。同时,介绍了Writer类的相似功能,包括write()、flush()和close()。通过对这两个类的源码解析,有助于理解Java字符流的操作机制。
摘要由CSDN通过智能技术生成

Reader

属性

    // 用于同步针对此流的操作的对象。
    protected Object lock;

构造函数

两个构造函数,使用不同的对象锁。

    // 创建一个新的字符流 reader,其重要部分将同步其自身的 reader。
    protected Reader() {
        this.lock = this;
    }
    // 创建一个新的字符流 reader,其重要部分将同步给定的对象。
    protected Reader(Object lock) {
        if (lock == null) {
            throw new NullPointerException();
        }
        this.lock = lock;
    }

方法

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

将字符读入缓冲数组 cbuf 中,从 off 下标开始存放,共 len 个字符。

    abstract public int read(char cbuf[], int off, int len) throws IOException;

read()

读取单个字符。

    public int read() throws IOException {
        char cb[] = new char[1];
        if (read(cb, 0, 1) == -1)
            return -1;
        else
            return cb[0];
    }

read(char cbuf[])

调用上边的 read 方法,从下标 0 处开始存入。

    public int read(char cbuf[]) throws IOException {
        return read(cbuf, 0, cbuf.length);
    }

read(java.nio.CharBuffer target)

试图将字符读入指定的字符缓冲区。

    public int read(java.nio.CharBuffer target) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值