项目中使用Sftp进行图片数据的处理,遇到获取流为空的问题;其实并非空流,只是流的大小未知;
之前使用都直接获取流直接输出到浏览器进行文件下载,因需要对文件内容进行处理,故需要获取内容先。
这是因为获取的流是未知大小的;故不能直接获取到流的大小;应该使用读取未知大小流的方式去处理;
因为我项目使用到new Base64().encode()进行图片转码,故使用ByteArrayOutputStream输出流,
个人可根据自己项目需求进行其他输出流。
ByteArrayOutputStream data = new ByteArrayOutputStream();
byte[] one = new byte[1024];
InputStream is= sftp.get(string);
int len = -1;
while ((len = is.read(one)) != -1) {
data.write(one, 0, len);
}
可以用以上方式获取流的内容,进一步进行数据就行。