项目中有新需求,需要将对象数据保存成excel,并以文件流形式上传到FTP服务器。由于将excel格式的数据
输入到输出流拿到的是输出流,而ftp上传的方法需要获得输入流对象。这里就需要将输出流转化成输入流了。下面
是这两种流的转化方法。
//新建输出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
//将excel文件写入输出流
wb.write(out);
//新建输入流,注意,将输出流转化成byteArray形式,然后就能将输出流转化成输入流
InputStream excelStream = new ByteArrayInputStream(out.toByteArray());
//进行FTP上传
GeneralFTPUtil.getInstance().storeFile(firmwareDirectory.toString(), fileName, excelStream);
//拼接下载链接
firmwareUrl = ftpClientConfigure.getFtpPreUrl()
+ UploadFileDirectoryType.EXCEL.getDirectory() + fileName;
out.close();
wb.close();
excelStream.close();
注意,输入和输出都要用byteArray格式,这样才能正确进行读写。