大佬教程收集整理的这篇文章主要介绍了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,请注明来意。