0%

ByteArrayOutputStream转InputStream(另类方法复制InputStream)

今天发现InputStream不能复制,没有实现Cloneable接口,当一次read后,就不存在了,但我的程序必须要读两次,于是我想了个方法,在read的同时,输出到ByteArrayOutputStream,读完了,再把ByteArrayOutputStream转成InputStream。

ByteArrayOutputStream os=new ByteArrayOutputStream();
byte buf[] = new byte[1024];
//省略循环
int numread = is.read(buf);
os.write(buf, 0, numread);
InputStream is2 = new ByteArrayInputStream(os.toByteArray());