我希望了解在Java中从
InputStream
多次读取字节的最佳方法,并且当流非常大时仍然高效。
假设我有以下代码:public void handleBytes(InputStream in) {
doStuff1(in);
doStuff2(in);
doStuff3(in);
}
这里有三个函数doStuff1
、doStuff2
和doStuff3
,需要对同一组字节进行操作但是功能不同。另外我假设这些函数可以异步执行。
我知道可以使用mark
和reset
来处理流,但我想知道当in
包含大量数据时,是否适用这种方式。而且如果我想为每个doStuff-X
方法设置一个线程工作器,就不能使用reset
了。
那我应该为每个doStuff-X
方法复制一份流吗?但是我也不确定对于大量数据这是否会有效率。