i2i*_*eya 2 java stream filter
为什么使用过滤器流和哪里?我读到过滤器流将用于将所需信息放入流中.是否正确,如果是这样,我们如何从流中过滤以及它将在何处使用?
java.io.Filter ....
我的问题是很难理解为什么我们使用Filter流,因为我们可以使用其他流来完成大部分工作.
我想你在谈论java.io.Filter*(比如FilterInputStream).
如果我们谈论FilterInputStream类,它只是一个不执行任何操作的InputStream的包装器.每次调用Filter的方法都会简单地调用包装的InputStream上的相应方法.一个人,这是没用的.
想象一下,你想要一个将每个"a"字符转换为"b"的InputStream.您可以扩展FilterInputStream并覆盖read()方法:
// this code has not been tested
class ABFilter extends FilterInputStream {
public ABFilter (InputStream in) {
super(in);
}
@Override
public int read() {
int character = super.read();
if (character == 97)
return 98;
return character;
}
// similarly implement all other "read()" methods
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用此流来包装任何现有流:
InputStream streamWithA = ...;
InputStream streamWithoutA = new ABFilter(streamWithA);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4168 次 |
| 最近记录: |