Java 将HTTPResponse正文中的字节流转换为pdf文件
当我通过postman访问API时,我可以下载pdf文件。 当我通过java代码点击相同的API时,我在ResponseBook中得到了pdf内容。 我可以用ResponseBook内容创建一个新的pdf文件,但当我打开文件时,它是空白的 我的问题是如何创建一个新文件,其内容与响应中的内容相同 我试过富利。转换响应的代码Java 将HTTPResponse正文中的字节流转换为pdf文件,java,spring,pdf,Java,Spring,Pdf,当我通过postman访问API时,我可以下载pdf文件。 当我通过java代码点击相同的API时,我在ResponseBook中得到了pdf内容。 我可以用ResponseBook内容创建一个新的pdf文件,但当我打开文件时,它是空白的 我的问题是如何创建一个新文件,其内容与响应中的内容相同 我试过富利。转换响应的代码 file = new File("/home/abc.pdf"); outputStream = new BufferedOutputStream(n
file = new File("/home/abc.pdf");
outputStream = new BufferedOutputStream(new FileOutputStream(file));
if (!file.exists()) {
file.createNewFile();
}
byte[] contentInBytes = response.getBody().getBytes();
System.out.println(Arrays.toString(contentInBytes));
outputStream.write(contentInBytes);
outputStream.flush();
outputStream.close();
创建一个临时的
byte[]
数组来存储整个响应正文,然后再将其保存到文件中,这是一种浪费。您想将响应InputStream
写入文件的OutputStream
这可以通过几种方式实现,一种是使用番石榴,例如:
可能重复的
try (OutputStream out = Files.newOutputStream(Paths.get("abc.pdf")) {
ByteStreams.copy(response.getBody(), out);
}