IO压缩流问题,为什么老是出现no current ZIP entry错误

jghjjh1 2010-11-04 05:36:45
我Debug了查了很久··但是还是查不出所以然啦,可能是方法不对什么,请大侠帮帮忙


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipException;
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipEntry;

public class ZipOutputStreamTest2 {
static ZipOutputStream zip = null;
static InputStream in = null;

public static void main(String[] args) throws Exception {
File Zfile = new File("D:" + File.separator + "javaTest"
+ File.separator + "ZipOutputStream2.zip");
File Ofile = new File("D:" + File.separator + "javaTest"
+ File.separator + "day");
zip = new ZipOutputStream(new ZipOutputStream(new FileOutputStream(
Zfile)));
ZipEntry firstEntry = new ZipEntry(Ofile.getName());
FileZip(Ofile,firstEntry);
in.close();
zip.close();

}

// 如果文件夹里面还有文件夹,则要采用递归的方法压缩
public static void FileZip(File InputFile,ZipEntry oldEntry) throws Exception {
File InputFileCOPY = InputFile;
ZipEntry oldEntryCOPY = oldEntry;
int temp = 0;
if (InputFileCOPY.isDirectory()) {
File[] list = InputFileCOPY.listFiles();
for (int i = 0; i < list.length; i++) {
if (list[i].isDirectory()) {
ZipEntry newEntry = new ZipEntry(oldEntryCOPY.getName()+File.separator+list[i].getName());
FileZip(list[i],newEntry);
} else {
in = new FileInputStream(list[i]);
ZipEntry ze = new ZipEntry(oldEntryCOPY .getName()
+ File.separator + list[i].getName());
zip.putNextEntry(ze);
while ((temp = in.read()) != -1) {
zip.write(temp);
}
}

}
}

}

}
...全文
5065 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
caofaping 2010-11-05
  • 打赏
  • 举报
回复 1
丫的,这个错误真难找。

zip = new ZipOutputStream(new ZipOutputStream(new FileOutputStream(
Zfile)));



zip = new ZipOutputStream(new FileOutputStream(Zfile));

小蝸牛 2010-11-04
  • 打赏
  • 举报
回复
压缩流没有用过
jghjjh1 2010-11-04
  • 打赏
  • 举报
回复
楼上是不是混分数的啊····
niyingchao 2010-11-04
  • 打赏
  • 举报
回复
我怎么什么也不会,我看我是找不到工作了
jghjjh1 2010-11-04
  • 打赏
  • 举报
回复
???楼上是什么意思
madFatso 2010-11-04
  • 打赏
  • 举报
回复
public class FieToZip {
static final int BUFFER = 2048;
static boolean flag = false;
public static File ZipSubdirectory(File myDir) throws IOException {
BufferedInputStream origin = null;
File zipFile = new File("c://"+myDir.getName() + ".zip");
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile));
File dirContents[] = myDir.listFiles();
File tempFile = null;
try {
for (int i = 0; i < dirContents.length; i++) {
if (dirContents[i].isDirectory()) {
tempFile = ZipSubdirectory(dirContents[i]);
flag = true;
} else {
tempFile = dirContents[i];
flag = false;
}
FileInputStream fis = new FileInputStream(tempFile);
origin = new BufferedInputStream(fis, BUFFER);
ZipEntry entry = new org.apache.tools.zip.ZipEntry(tempFile
.getName());
byte data[] = new byte[BUFFER];
int count;
out.putNextEntry(entry);
while ((count = origin.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
out.closeEntry();
origin.close();
if (flag == true) {
flag = tempFile.delete();
}
}
} catch (Exception e) {
System.out.println(e);
}
out.close();
return zipFile;
}

}

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧