99. ByteArrayOutputStream转化为ByteArrayInputStream
ByteArrayOutputStream baos = xxx;
i = new ByteArrayInputStream(baos.toByteArray())
100.将inputstream转换为byte[]
https://blog.youkuaiyun.com/yogima/article/details/128500056
100.1 方式一
直接使用IOUtils
byte[] bytes = IOUtils.toByteArray(inputStream);
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
100.2 方式二
private static ByteArrayOutputStream cloneInputStream(InputStream input) throws IOException {
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;
} finally {
input.close();
}
}
....
ByteArrayOutputStream baos = cloneInputStream(i);//直接复制流,不要重用,否则需要用reset重置位置,bmp文件还不支持重置会报错
// 打开两个新的输入流
baos.toByteArray();
101.将inputstream转成outputstream
IOUtils.copy(inputStream, outputStream);