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
所以