java关于输入输出流的转换
前段时间做图片上传到ftp,由于图片过大,在上传后前台加载展示需要过多的时间,因此考虑在上传图片的时候对图片进行压缩处理,然后将压缩之后的图片上传到ftp服务器上。
图片从前端上传上来是输入流的形式,进过压缩之后会得到一个输出流,但是上传到ftp服务器上需要的是一个输入流,因此需要对流的形式进行简单的转换。
这些类型流其实都可以转换为字节流,因此这里通过字节流对输入输出流进行类型转换。
/**
* 利用字节数组缓存数据将OutputStream转换为InputStream
* @param byteOutput
* @return
* @throws IOException
*/
public static InputStream outputStream2InputStream(ByteArrayOutputStream byteOutput) throws IOException{
InputStream inputStream = null;
try {
inputStream = new ByteArrayInputStream(byteOutput.toByteArray());
} catch (Exception e) {
if(inputStream != null){
inputStream.close();
}
e.printStackTrace();
}finally {
if(byteOutput != null ){
byteOutput.close();
}
}
return inputStream;
}
使用流的时候一定要注意最后要关闭流。