OutputStream 转 InputStream

开发中遇到生成文件,又不能存服务器磁盘,需要上传到某对象存储。

这个时候需要OutputStream 转 InputStream

XSSFWorkbook wb = null;
try {
    wb = buildDownloadFile();
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    wb.write(bos);
    byte[] buffer = bos.toByteArray();
    InputStream inputStream = new ByteArrayInputStream(buffer);
    String fileName = buildDownloadFileName();
    uploadFile(inputStream, fileName);
} catch (Exception e) {
    e.printStackTrace();
    throw new RuntimeException(e.getMessage());
} finally {
    if (wb != null) {
        try {
            wb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}