Java 在不使用字节数组的情况下复制InputStream的最佳方法是什么?
复制InputStream的一种方法是将其转换为字节数组,然后基本上只创建两个InputStream 但是,假设需求是这样的Java 在不使用字节数组的情况下复制InputStream的最佳方法是什么?,java,Java,复制InputStream的一种方法是将其转换为字节数组,然后基本上只创建两个InputStream 但是,假设需求是这样的 InputStream inputStream = ...; InputStream copyOfStream = copyOfStream(inputStream); 理论上的copyOfStream的代码是什么 考虑apache commons类TeInputStream: 流只是要读取的数据序列。如果您确实想复制它,您需要一个可以重置的可重复流(即markSupp
InputStream inputStream = ...;
InputStream copyOfStream = copyOfStream(inputStream);
理论上的
copyOfStream
的代码是什么 考虑apache commons类TeInputStream:
流只是要读取的数据序列。如果您确实想复制它,您需要一个可以重置的可重复流(即
markSupported()
返回true
,然后reset()
将流还原到开头),或者您需要从流中捕获数据以便可以再次读取。@nickb是正确的。请注意,您可以创建一个具有特定缓冲区大小的BufferedInputStream,以确保您有一个InputStream,该InputStream支持标记()和重置()以获得如此多的字节。确切地说,您可以标记开始,读取流,重置流,再读取流。