Java实现InputStream的任意拷贝方式

网友投稿 656 2022-09-20


Java实现InputStream的任意拷贝方式

java InputStream的任意拷贝

有时候,当我们需要多次使用到同一个InputStream的时候如何实现InputStream的拷贝使用

我们可以把InputStream首先转换成ByteArrayOutputStream.然后你就可以任意克隆你需要的InputStream了

代码如下:

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len;

while ((len = input.read(buffer)) > -1 ) {

baos.write(buffer, 0, len);

}

baos.flush();

// 打开一个新的输入流

InputStrehttp://am is1 = new ByteArrayInputStream(baos.toByteArray());

InputStream is2 = new ByteArrayInputStream(baos.toByteArray());

但是如果你真的需要保持一个原始的输入流去接收信息,你就需要捕获输入流的close()的方法进行相关的操作

复制InputStream流的代码

private static InputStream cloneInputStream(InputStream input) {

try {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len;

while ((len = input.read(buffer)) > -1) {

baos.write(buffer, 0, len);

}

baos.flush();

return new ByteArrayInputStreambmfoZZOlP(baos.toByteArray());

} catch (IOException e) {

e.printStackTrace();

return null;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:奇了怪了,为啥大佬总是用这方法配置交换机端口限速?(交换机出口限速 入口限速)
下一篇:OSPF多区域与路由的重分发(不同ospf进程间路由重分布)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~