Java I/O全文摘要(六)过滤流,过滤流

本文详细介绍了Java中的过滤流,包括其用于加密、压缩、翻译和缓冲等功能。过滤流可以从已存在的流中读取数据并改变,形成流链。重点讨论了FilterInputStream和FilterOutputStream,以及它们的子类如BufferedInputStream和BufferedOutputStream,强调了缓冲流在性能提升方面的作用。同时,提到了PushbackInputStream的独特功能,允许数据回退。最后,文章还探讨了如何在实际应用中使用和配置缓冲流以达到最佳效果。
摘要由CSDN通过智能技术生成

1.过滤流

"Filter streams are used for encryption, compression, translation, buffering, and much more."

过滤流用于加密,压缩,翻译,缓冲和其他功能。


过滤器从预先存在的流中读取数据,然后在传递到客户端程序之前,有机会改变他的数据。

可将多个流连成一条链对底层的流使用。

过滤流不仅仅移除掉你不想要的,还能增加你想要的。


2. 过滤流类

两个超级类:java.io.FilterInputStream和java.io.FilterOutputStream

public class FilterInputStream extends InputStream
public class FilterOutputStream extends OutputStream

它们都只有一个protected类型的结构体

protected FilterInputStream(InputStream in)
protected FilterOutputStream(OutputStream out)

由于结构体是保护的,所以需要采用子类实现部分功能,并提供public的结构体

它们使用一个超级类作为成员变量,然后对这个成员变量进行修饰

protected InputStream in
protected OutputStream out


其实除了构造方法,常用的是下面这些:

对于FilterInputStream:

public int  read( ) throws IOException
public int  read(byte[] data) throws IOException
public int  read(byte[] data, int offset, int length) throws IOException
public long skip(long n) throws IOException
public int  available( ) throws IOException
public void close( ) throws IOException
public void mark(int readlimit)
public void reset( ) throws IOException
public boolean markSupported( )

对于FilterOutputStream:

public void write(int b) throws IOException
public void write(byte[] data) throws IOException
public void write(byte[] data, int offset, int length) throws IOException
public void flush( ) throws IOException
public void close( ) throws IOException


所以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值