欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java实现inputstream流的复制代码实例

时间:2021-05-12 09:10:04|栏目:JAVA代码|点击:

这篇文章主要介绍了Java实现inputstream流的复制代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

获取到一个inputstream后,可能要多次利用它进行read的操作。由于流读过一次就不能再读了,而InputStream对象本身不能复制,而且它也没有实现Cloneable接口,所以得想点办法。

实现思路:

1、先把InputStream转化成ByteArrayOutputStream

2、后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来

代码

package com.test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
public class StreamOperateUtil {
	public static void main(String[] args) throws FileNotFoundException {
		InputStream input = new FileInputStream("c:\test.txt");
		//InputStream input = httpconn.getInputStream(); //这里可以写你获取到的流
		ByteArrayOutputStream baos = cloneInputStream(input);
		// 打开两个新的输入流 
		InputStream stream1 = new ByteArrayInputStream(baos.toByteArray());
		InputStream stream2 = new ByteArrayInputStream(baos.toByteArray());
	}
	private static ByteArrayOutputStream 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 baos;
		}
		catch (IOException e) {
			e.printStackTrace();
			return null;
		}
	}
}

上一篇:java 实现文件复制和格式更改的实例

栏    目:JAVA代码

下一篇:java后台实现支付宝支付接口和支付宝订单查询接口(前端为APP)

本文标题:Java实现inputstream流的复制代码实例

本文地址:http://www.codeinn.net/misctech/119666.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有