inputStream的二次使用
程序员文章站
2024-02-04 08:34:58
...
nputStream会保存一个位置:Stream.Position,表示当前流中的位置,每次读取都是从这个位置开始,并且读取完成之后会把这个位置设置为最后读取的位置,因此第一次读整个Stream,Position到了末尾或者close了,第二次就读不到内容。此时,可以先把InputStream转化成ByteArrayOutputStream,后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来就好了.
例子如下:
InputStream input = response.body().byteStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len=-1;
while ((len = input.read(buffer)) = -1 ) {
baos.write(buffer, 0, len);
}
baos.flush();
input.close
InputStream input1 = new ByteArrayInputStream(baos.toByteArray());
InputStream input2 = new ByteArrayInputStream(baos.toByteArray());
input1和input2就可以随便虐待了。
下一篇: php自动生成txt解决方法
推荐阅读
-
inputStream的二次使用
-
使用PHP Socket写的POP3类_PHP教程
-
输入流InputStream的read(byte b[], int off, int len)方法的使用
-
使用File或InputStream移动文件
-
Openmeetings4.0.0二次开发日志(三)使用webservice调用OM接口(1)
-
php中const与define的使用区别 详解_PHP教程
-
Yii2使用自带的UploadedFile实现的文件上传_php实例
-
php中为什么在trycatch块中定义的变量在块外也可以使用?
-
php使用ffmpeg向视频中添加文字字幕的实现方法,_PHP教程
-
php使用指定字符列表生成随机字符串的方法