Java 将base64编码的pdf转换为文件输入流而不将文件写入系统

Java 将base64编码的pdf转换为文件输入流而不将文件写入系统,java,pdf,file-io,base64,pdfbox,Java,Pdf,File Io,Base64,Pdfbox,我得到一个base64 PDF输入作为我的客户端请求的一部分,我需要将此文件转换为文件输入流以与PDF BOX库一起使用。我试图在不将文件写入驱动器和直接将base64 pdf读入文件输入流的情况下实现这一点 我能做什么: 将base64编码的pdf转换为文件并在驱动器上写入 将文件读入文件输入流 我想做什么: 将base64编码的PDF转换为文件输入流,以便与PDFBOX一起使用。 我试图避免将文件写入磁盘。在pdfbox中,您可以从输入流加载pdf。它不需要是FileInputStream

我得到一个base64 PDF输入作为我的客户端请求的一部分,我需要将此文件转换为文件输入流以与PDF BOX库一起使用。我试图在不将文件写入驱动器和直接将base64 pdf读入文件输入流的情况下实现这一点

我能做什么: 将base64编码的pdf转换为文件并在驱动器上写入 将文件读入文件输入流

我想做什么: 将base64编码的PDF转换为文件输入流,以便与PDFBOX一起使用。
我试图避免将文件写入磁盘。

在pdfbox中,您可以从
输入流加载pdf。它不需要是
FileInputStream

使用以下代码可以获得解码pdf的输入流。
注意:根据用于编码pdf的方案,您可能需要使用:
.getMimeDecoder()
而不是
.getDecoder()


在pdfbox中,您可以从
InputStream
加载pdf。它不需要是
FileInputStream

使用以下代码可以获得解码pdf的输入流。
注意:根据用于编码pdf的方案,您可能需要使用:
.getMimeDecoder()
而不是
.getDecoder()


发布一些代码。
FileInputStream
表示它来自文件。为什么不使用另一个
InputStream
,比如
ByteArrayInputStream
PipedInputStream
?将PDF加载到字节数组中,并使用
Base64.getDecoder().decode(…)
。然后将结果字节数组写入输出流。具体来说,你的困难是什么?如果你没有展示你能做什么的代码,就很难展示如何使代码适应你想要它做的事情。发布一些代码。
FileInputStream
意味着它来自一个文件。为什么不使用另一个
InputStream
,比如
ByteArrayInputStream
PipedInputStream
?将PDF加载到字节数组中,并使用
Base64.getDecoder().decode(…)
。然后将结果字节数组写入输出流。具体来说,你的困难是什么?如果你没有展示你能做什么的代码,就很难展示如何调整代码来做你想做的事情。
InputStream decoded = java.util.Base64.getDecoder().wrap(inputStream);
PDDocument.load(decoded);