这篇文章主要介绍了Java实现inputstream流的复制代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
获取到一个inputstream后,可能要多次利用它进行读的操作。由于流读过一次就不能再读了,而inputstream对象本身不能复制,而且它也没有实现可克隆接口,所以得想点办法。
实现思路:
1,先把InputStream转化成ByteArrayOutputStream
2,后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来
代码
包com.test; 进口java.io.ByteArrayInputStream; 进口java.io.ByteArrayOutputStream; 进口java.io.FileInputStream; 进口java.io.FileNotFoundException; 进口java.io.IOException; 进口java.io.InputStream; 公开课StreamOperateUtil { 公共静态void main (String [] args)抛出FileNotFoundException { InputStream输入=new FileInputStream (“c: \用法”);//InputStream输入=httpconn.getInputStream ();//这里可以写你获取到的流 ByteArrayOutputStream包=cloneInputStream(输入);//打开两个新的输入流 InputStream stream1=new ByteArrayInputStream (baos.toByteArray ()); InputStream stream2=new ByteArrayInputStream (baos.toByteArray ()); } 私有静态ByteArrayOutputStream cloneInputStream (InputStream输入){ 尝试{ ByteArrayOutputStream包=new ByteArrayOutputStream (); byte[]新字节缓冲区=[1024]; int len; 而((len=input.read(缓冲))比;1){ 包。写(缓冲区,0,len); } baos.flush (); 返回包; } 抓住(IOException e) { e.printStackTrace (); 返回null; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。