ZipException

booboy2563 booboy2563 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
文件流出现下面异常,请问是那里出了问题,怎么修正代码啊?

异常内容:
java.util.zip.ZipException:no current ZIP entry
at java.util.zip.ZipPutputStream.write(ZipOutputStream.java:267)
at java.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at java.nio.cs.StreamEncoder.impClose(StreamEncoder.java:297)
at java.nio.cs.StreamEncoder.close(StreamEncoder.java:130)
at java.io.OutputStreamWriter.close(OutputStreamWriter.java:217)
at java.io.BufferedWriter.close(BufferedWriter.java:249)
at test.batch.DataGet.doWrierZip(DataGet.java:409)
at test.batch.DataGet.excute(DataGet.java:204)
at test.batch.DataGet.main(DataGet.java:1110)

其中倒数第三行指向代码:
boolean isFinish = csvWriter.write(path,zipFileName,csvFileName,DataRS,endtime)

调用writer方法:
public final boolean write(final String path,final String zipFileName,final String csvFileName,final ResultSet DataRS,final String endtime) throws Exception {
ZipOutputStream zos=null;
BufferedWriter bw =null;
ZipEntry file=null;
int judgeNum=1000;
try {
String filePath = path+ zipFileName;
zos = new ZipPutputStream(New BufferedOutputStream(New FileOutputStream(filePath),Const.BUFFER_SIZE));
bw = new BufferedWriter(New OutputStreamWriter(zos,"SJIS"));
file = new ZipEntry(csvFileName);
zos.putNextEntry(file);
int timeJudgeCount=0;
long countData=0;
while(dataRS.next()){
timeJudgeCount++;
String data=getRowData(dataRS);
bw.write(data);
if(timeJudgeCount>judgeNum){
bw.flush();
Long nowtime=System.currentZTimeMillis();
if(nowtime>= endtime){
zos.colseEntry();
bw.close();
bw=null;
return false;
}
timeJudgeCount=0;
}
countData++;
}
bw.flush();
zos.closeEntry();
bw,close;
bw=null;
Long nowtime=System.currentZTimeMillis();
if(nowtime>= endtime){
return false;
}
return true;
} finally {
if(bw!=null){
zos.closeEntry();
bw.close();
}
}
}
...全文
评论 11
收藏 已收藏
分享
返回顶部
booboy2563
Java 51,407 成员 86,133 内容