分析器类的列表,这些分析器类分析InputStream的依赖项,更改一些内容并将其写入OutputStream:
public Set<Dependency> analyse(InputStream i, OutputStream o);
分析器应按以下方式链接:
for(DocumentAnalyser analyser : a) {
o.getDependencies().addAll(analyser.analyse(in, out));
in = new ByteArrayInputStream(out.toByteArray());
}
现在,我在最终环境中工作。
有没有更好的方法来“链接”流?
使用ByteArrayInputStream从“输出”到“输入”的“交换”操作昂贵吗?
如何处理“ in”是最终的问题?
最佳答案
使用辅助线程和java.io.PipedInputStream
/ java.io.PipedOutputStream
对。
它可能无法在大流量中表现良好。
就像在另一个响应中所说的那样,使用局部非最终变量进行链接
请注意,通过应用1.,您不必担心2,因为实际上是在对流进行管道传输。