Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将HTTPResponse正文中的字节流转换为pdf文件_Java_Spring_Pdf - Fatal编程技术网

Java 将HTTPResponse正文中的字节流转换为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

当我通过postman访问API时,我可以下载pdf文件。 当我通过java代码点击相同的API时,我在ResponseBook中得到了pdf内容。 我可以用ResponseBook内容创建一个新的pdf文件,但当我打开文件时,它是空白的

我的问题是如何创建一个新文件,其内容与响应中的内容相同

我试过富利。转换响应的代码

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);
}