我需要一个类来生成一个Excel文件,这个类需要一个输出流,用于FileOutputWriter。但是,我需要稍后将文件上传到S3,因此将其保存到文件将是不必要的步骤。要将文件上传到S3,我需要将其作为输入流。
因此,我一直在寻找一种将输出流转换为输入流或将数据传输到输入流的方法。
我已经尝试过PipeOutputStream,但xlsFile.write(outstr);在使用PipedOutputStream时会永远阻塞,使用FileOutputStream可以很好地工作并写入文件。
PipedInputStream inputStream = new PipedInputStream();
try (OutputStream outstr = new PipedOutputStream(inputStream)) {
xlsFile.write(outstr);
outstr.flush();
return inputStream;
}发布于 2017-08-17 14:37:17
JDK 9已经为此功能添加了InputStream#transferTo(OutputStream out),尽管JDK9尚未发布。早期版本可在here上使用。
https://stackoverflow.com/questions/40941978
复制相似问题