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