我想编写一个 grep 类型的过滤器,它将 Guava Charstreams InputSupplier 作为输入并使用 Charstreams OutputSupplier 作为其输出。如果它们满足特定的正则表达式,它应该只将行从 inputsupplier 传递到 outputsupplier。
这样做的正确设计模式/范式是什么?
我猜你会做这样的线路过滤器:
InputSupplier<InputStreamReader> ris = CharStreams.newReaderSupplier(....
CharStreams.readLines(ris, new LineProcessor<....
并实现 LineProcessor 方法。
但是 LineProcessor.getResult() 应该返回什么 - 只是失败的成功?我应该在周围功能中使用“最终”输出供应商吗?
还是我使用了完全错误的 api/方法!!
一些伪代码来演示最好的方法将不胜感激。
感谢您的建议。