我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);
}
} }
} }}
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);
}
} }
} }}
解决方案 »
- 我在执行Timer.schedule,一分钟服务器执行两次。什么原因?
- 诡异的基础题(2),看看你会不会!
- Java编译过程的问题,有关jbuilder9的问题
- 怎样将Date的2005-04-19 00:00:00.0 转换成Date 2005-04-19
- 在APPLET中用JFreeChart,那个包巨大,几乎1M,我用的功能很少,有没有什么工具可以找出我不需要用到的class??
- 一个关于面板三色切换 和 匿名类中有无this句柄 的小问题. 菜鸟求助
- 谈谈一个设计理念!献给想上一层台阶的java初学者!
- ◆◆◆◆◆用过Insectivore v1.1.1 Beta for Eclipse 3.0.M的朋友请进来◆◆◆◆◆
- 讲ASC码值转换成字符
- Rebocode中的时间单位是怎么定的?在线等!!!半小时结帐!!!
- java的基于swing的界面编程重要吗?
- J2EE,J2SE,J2ME
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;
}}
Zfile)));zip = new ZipOutputStream(new FileOutputStream(Zfile));