java io系列10之 FilterInputStream

本文详细介绍了FilterInputStream及其子类BufferedInputStream和DataInputStream的功能与用途。FilterInputStream主要用于为其他输入流提供增强功能,而BufferedInputStream增加了缓冲功能并支持mark()和reset()操作,DataInputStream则实现了读取基本Java数据类型的机器无关方式。
摘要由CSDN通过智能技术生成

本文摘抄至:skywang12345

摘要:因为 FilterInputStream只是一个标准所以没有实例,具体参考 InputStream

FilterInputStream 介绍


FilterInputStream :的作用是用来 “封装其它的输入流,并为它们提供额外的功能”。它的常用的子类有BufferedInputStream和DataInputStream。
BufferedInputStream: 的作用就是为“输入流提供缓冲功能,以及mark()和reset()功能”。
DataInputStream :是用来装饰其它输入流,它“允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型”。应用程序可以使用DataOutputStream(数据输出流)写入由DataInputStream(数据输入流)读取的数据。

FilterInputStream 源码(基于jdk1.7.40)


package java.io;

/** 
 * FileterInputStream 过滤器字节输入流    、本身什么事都没有做、只是简单的重写InputStream的所有方法。 
 */  
public class FilterInputStream extends InputStream {
     /** 
     * 接收构造函数传递进来的 InputStream具体实现类。
     */  
    protected volatile InputStream in;

     /** 
     * 根据传入的InputStream具体实现类创建FilterInputStream、并将此实现类赋给全局变量 in、方便重写此实现类从InputStream继承的或重写的所有方法。 
     */  
    protected FilterInputStream(InputStream in) {
        this.in = in;
    }

    /** 
     * 具体InputStream实现类的read()方法、若子类自己实现的、则是子类的、若子类没有实现则用的是InputStream本身的方法。
     */ 
    public int read() throws IOException {
        return in.read();
    }

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

    public int read(byte b[], int off, int len) throws IOException {
        return in.read(b, off, len);
    }

    public long skip(long n) throws IOException {
        return in.skip(n);
    }

    public int available() throws IOException {
        return in.available();
    }

    public void close() throws IOException {
        in.close();
    }

    public synchronized void mark(int readlimit) {
        in.mark(readlimit);
    }

    public synchronized void reset() throws IOException {
        in.reset();
    }

    public boolean markSupported() {
        return in.markSupported();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值