软件编程
位置:首页>> 软件编程>> java编程>> Java实现InputStream的任意拷贝方式

Java实现InputStream的任意拷贝方式

作者:曲终人散J  发布时间:2022-04-08 10:11:32 

标签: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();

// 打开一个新的输入流
InputStream 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 ByteArrayInputStream(baos.toByteArray());
   } catch (IOException e) {
       e.printStackTrace();
       return null;
   }
}

来源:https://blog.csdn.net/jys1115/article/details/42642549

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com