读取⽂件解析⽂件发⽣的错误,已解决
错误背景
从⽂件服务器上⾯读取zip压缩⽂件下来,然后解压,放指定⽬录下。获取所有解压后⽂件的路径地址保存在list集合⾥⾯。最后要求是把所
有获取到zip⾥⾯的pdf⽂件合成为⼀个总pdf⽂件,放⼊压缩包,上传到⽂件服务器上⾯就完成了。
发⽣错误点:所有pdf合成⼀个总pdf⽂件,在压缩为zip⽂件上传上去后,打开发下合成的pdf损坏了。
错误代码:
publicstaticStringstart(List
Stopwatchstopwatch=Started();
//获取回单⽂件在linux上的临时存放地址
finalStringlinuxFilePath=ue(_PATH_TEMP);
List
StringdownloadUrl=null;
for(inti=0;i<();i++){
(linuxFilePath+(i));
}
("fileList集合:{}",());
Documentdocument=null;
StringpdfUrl=linuxFilePath+tTimeMillis()+".pdf";
StringpdfZip=linuxFilePath+tTimeMillis()+".zip";
try{
document=newDocument();
PdfCopycopy=newPdfCopy(document,newFileOutputStream(pdfUrl));
();
for(Strings:fileList){
PdfReaderreader=newPdfReader(s);
intn=berOfPages();
for(intj=1;j<=n;j++){
e();
PdfImportedPagepage=ortedPage(reader,j);
e(page);
}
}
//放⼊压缩⽂件中
ZipFilezipFile=newZipFile(pdfZip);
e(newFile(pdfUrl));
StringfileRelativePath=File(pdfZip);
downloadUrl=nUrl(fileRelativePath);
("相对路径:{},下载地址:{}",fileRelativePath,downloadUrl);
}catch(Exceptione){
tackTrace();
}
for(Strings:fileList){
Quietly(newFile(s));
Quietly(newFile(pdfUrl));
Quietly(newFile(pdfZip));
}
();
();
("耗时:{}",d(S));
returndownloadUrl;
}
解释下:获取⽂件路径然后把这些pdf⽂件合成⼀个,然后放⼊压缩包中,在上传到⽂件服务器上⾯去
问题原因:在pdf⽂件合成⼀个总pdf⽂件时,⽂件流还未关闭,就进⾏压缩操作,这是获取到的⽂件就是损坏的。
解决⽅法:
把
();
();
代码块放⼊合成总pdf⽂件之后,然后在做其他操作,⽂件就不是损坏的了。
正确代码⽰例:
publicstaticStringstart(List
Stopwatchstopwatch=Started();
//获取回单⽂件在linux上的临时存放地址
finalStringlinuxFilePath=ue(_PATH_TEMP);
List
StringdownloadUrl=null;
for(inti=0;i<();i++){
(linuxFilePath+(i));
}
("fileList集合:{}",());
Documentdocument=null;
StringpdfUrl=linuxFilePath+tTimeMillis()+".pdf";
StringpdfZip=linuxFilePath+tTimeMillis()+".zip";
try{
document=newDocument();
PdfCopycopy=newPdfCopy(document,newFileOutputStream(pdfUrl));
();
for(Strings:fileList){
PdfReaderreader=newPdfReader(s);
intn=berOfPages();
for(intj=1;j<=n;j++){
e();
PdfImportedPagepage=ortedPage(reader,j);
e(page);
}
}
();
();
//放⼊压缩⽂件中
ZipFilezipFile=newZipFile(pdfZip);
e(newFile(pdfUrl));
StringfileRelativePath=File(pdfZip);
downloadUrl=nUrl(fileRelativePath);
("相对路径:{},下载地址:{}",fileRelativePath,downloadUrl);
}catch(Exceptione){
tackTrace();
}
for(Strings:fileList){
Quietly(newFile(s));
Quietly(newFile(pdfUrl));
Quietly(newFile(pdfZip));
}
("耗时:{}",d(S));
returndownloadUrl;
}
刚刚开始以为是压缩⽂件的时候,压缩的问题,后来换了⼏种⽅式,还是报⽂件损坏,最后午休起来灵光⼀现,发下这⽂件流放最后⾯关
闭,是否是因为这个问题,最后终于可了,哎,纠结了⼀个上午。
本文发布于:2023-03-02 20:05:27,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1677758728114859.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:解析错误怎么解决.doc
本文 PDF 下载地址:解析错误怎么解决.pdf
留言与评论(共有 0 条评论) |