Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不使用字节数组的情况下复制InputStream的最佳方法是什么?_Java - Fatal编程技术网

Java 在不使用字节数组的情况下复制InputStream的最佳方法是什么?

Java 在不使用字节数组的情况下复制InputStream的最佳方法是什么?,java,Java,复制InputStream的一种方法是将其转换为字节数组,然后基本上只创建两个InputStream 但是,假设需求是这样的 InputStream inputStream = ...; InputStream copyOfStream = copyOfStream(inputStream); 理论上的copyOfStream的代码是什么 考虑apache commons类TeInputStream: 流只是要读取的数据序列。如果您确实想复制它,您需要一个可以重置的可重复流(即markSupp

复制InputStream的一种方法是将其转换为字节数组,然后基本上只创建两个InputStream

但是,假设需求是这样的

InputStream inputStream = ...;
InputStream copyOfStream = copyOfStream(inputStream);

理论上的
copyOfStream
的代码是什么

考虑apache commons类TeInputStream:


流只是要读取的数据序列。如果您确实想复制它,您需要一个可以重置的可重复流(即
markSupported()
返回
true
,然后
reset()
将流还原到开头),或者您需要从流中捕获数据以便可以再次读取。@nickb是正确的。请注意,您可以创建一个具有特定缓冲区大小的BufferedInputStream,以确保您有一个InputStream,该InputStream支持标记()和重置()以获得如此多的字节。确切地说,您可以标记开始,读取流,重置流,再读取流。