将字节写入流

时间:2018-09-29 09:43:16

标签: java arrays pdf

在实现java-ws服务以从另一个Web服务下载pdf文件时遇到问题。下面是同一段代码。由于Web服务(此Java代码正在调用)正在使用已编码的binary-base-64进行响应,因此使用了decode()。我可以看到PDF已下载到指定位置,但是当我使用pdf阅读器打开时,它表示文件已损坏。你能帮我吗?

public DownloadFileResponse DownloadResponseMapper(Header header, DownloadDocumentResponseType response){
        DownloadFileResponse result = new DownloadFileResponse();
        result.setHeader(header);
        Status status = new Status();
        status.setStatusCode(String.valueOf(String.valueOf(response.getStatus().getStatusCode())));
        status.setStatusMessage(response.getStatus().getMessage());
        result.setStatus(status);
        if(String.valueOf(String.valueOf(String.valueOf(response.getStatus().getStatusCode()))) != "0") {
            String qNameFile = FileExchange.getProperty("fileSystem.sharedLocation") + "/" + "result.pdf";
            try {
                byte[] fileContent = FileUtil.decode(response.getFile());
                System.out.println(response.getFile());
                FileUtil.writeByteArraysToFile(qNameFile, fileContent);
            } catch (Exception e) {
                _logger.info(e.getStackTrace());
            }
            // calculate the hash of the file using two algorithm SHA-256/SHA-512
            List<FileHashType> hashes = FileUtil.calculateHash(result.getFile());
            result.setFileHash(hashes);
        }
        return result;
    }


public static void writeByteArraysToFile(String fileName, byte[] content) throws IOException {
        File file = new File(fileName);
        BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(file));
        writer.write(content);
        writer.flush();
        writer.close();

    }

0 个答案:

没有答案