程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AWS S3 Java SDK下载PDF损坏大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决AWS S3 Java SDK下载PDF损坏?

开发过程中遇到AWS S3 Java SDK下载PDF损坏的问题如何解决?下面主要结合日常开发的经验,给出你关于AWS S3 Java SDK下载PDF损坏的解决方法建议,希望对你解决AWS S3 Java SDK下载PDF损坏有所启发或帮助;

坦白地说,我愿意打赌,问题是您将整个缓冲区写入fiLeoutputStream。传输结束时,缓冲区不会完全填满/覆盖,您最终将向最后读取的文件剩余字节写入一些字节。您需要修改此代码以仅写入实际从输入流中读取的字节数,而不是整个缓冲区。

代替

fout.write(b);

尝试

fout.write(b, 0, bytesRead);

这样,如果在最后一次读取期间仅读取100个字节,则仅写入缓冲区的前100个字节,而忽略实际上已经写入文件的其余8092个字节。

解决方法

我正在使用getObject api从AWS
s3下载文件。简单的文本文件可以正常工作,但是在pdf下载上我的文件已损坏。我正在使用FiLeoutputStream并将内容保存在文件中,但是保存的pdf损坏了。

我不太确定用于此目的的正确Java API,读取的字节要写入的字节数组的大小应该是多少。

我也很好奇,直接使用SDK是否有意义,或者我可以利用Java中提供的开源包装器api。

FiLeoutputStream fout =新FiLeoutputStream(新File(destFilename));

 byte[] b = new byte[8192];
 int bytesRead;
    while (true) {
     bytesRead = input.read(b);
        System.out.println("bytesRead = "+bytesRead );
        if (bytesRead==-1) 
         break;
        fout.write(b);
    }        
    fout.flush();
    fout.close();

大佬总结

以上是大佬教程为你收集整理的AWS S3 Java SDK下载PDF损坏全部内容,希望文章能够帮你解决AWS S3 Java SDK下载PDF损坏所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。