过滤器通过其构造函数与流连接
例如:
FileInputStream fis = new FileInputStream("data.txt");
BufferedInputStream bin = new BufferedInputStream(fis);
不过,如果混合调用连接到同一个源的不同流,这可能会违反过滤器流的一些隐含的约定。
大多数情况下,应当只使用链中最后一个过滤器进行实际的读/写。要想在编写代码时尽量不带入这种bug,可以有意地重写底层输入流的引用。
InputStream in = new FileInputStream("data.txt");
in = new BufferedInputStream(in);
也可以直接
DataOutputStream dout = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("data.txt")
)
);