InputStream只能读取一次,如何实现复用?
程序员文章站
2022-03-10 14:13:19
...
需要对同个文件流进行两个操作,一个是上传文件存储到当前结点,一个是同步文件到其他结点。由于流只能读取一次。于是要想办法让流可以重复使用。
public class BaseFileService {
/**
* 把InputStream首先转换成byte[].
* @param source
* @return
* @throws IOException
*/
protected byte[] getBytes(InputStream source) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = source.read(buffer)) > -1 ) {
baos.write(buffer, 0, len);
}
baos.flush();
return baos.toByteArray();
}
}
//把InputStream首先转换成ByteArrayOutputStream.然后你就可以任意克隆你需要的InputStream了 byte[] dataBytes = getBytes(source); InputStream in1 = new ByteArrayInputStream(dataBytes); InputStream in2 = new ByteArrayInputStream(dataBytes);
上一篇: [软件构造]实验回顾:Lab2
推荐阅读
-
inputstream 解决只能读取一次
-
页面只能打开一次Cooike如何实现_javascript技巧
-
InputStream只能读取一次,如何实现复用?
-
拦截器中,request中getReader()和getInputStream()只能调用一次,构建可重复读取inputStream的request.
-
拦截器中,request中getReader()和getInputStream()只能调用一次,构建可重复读取inputStream的request.
-
Request中的InputStream只能读取一次的问题
-
InputStream只能读取一次的解决方法
-
inputstream 解决只能读取一次
-
inputstream 解决只能读取一次
-
controller层统一捕获异常(重点:解决HttpServletRequest inputStream只能读取一次的问题)...