压缩文件夹代码:
import
java.io.File;
import
org.apache.tools.zip.ZipOutputStream;
//
这个包在ant.jar里,要到官方网下载
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.util.zip.ZipInputStream;
import
java.util.zip.ZipEntry;
public
class
CompressBook
{
public
CompressBook()
{}
/*
* inputFileName 输入一个文件夹
* zipFileName 输出一个压缩文件夹
*/
public
void
zip(String inputFileName)
throws
Exception
{
String zipFileName
=
"
c://test.zip
"
;
//
打包后文件名字
System.out.println(zipFileName);
zip(zipFileName,
new
File(inputFileName));
}
private
void
zip(String zipFileName, File inputFile)
throws
Exception
{
ZipOutputStream out
=
new
ZipOutputStream(
new
FileOutputStream(zipFileName));
zip(out, inputFile,
""
);
System.out.println(
"
zip done
"
);
out.close();
}
private
void
zip(ZipOutputStream out, File f, String base)
throws
Exception
{
if
(f.isDirectory())
{
File[] fl
=
f.listFiles();
out.putNextEntry(
new
org.apache.tools.zip.ZipEntry(base
+
"
/
"
));
base
=
base.length()
==
0
?
""
: base
+
"
/
"
;
for
(
int
i
=
0
; i
<
fl.length; i
++
)
{
zip(out, fl[i], base
+
fl[i].getName());
}
}
else
{
out.putNextEntry(
new
org.apache.tools.zip.ZipEntry(base));
FileInputStream in
=
new
FileInputStream(f);
int
b;
System.out.println(base);
while
( (b
=
in.read())
!=
-
1
)
{
out.write(b);
}
in.close();
}
}
public
static
void
main(String [] temp)
{
CompressBook book
=
new
CompressBook();
try
{
book.zip(
"
c://c
"
);
//
你要压缩的文件夹
}
catch
(Exception ex)
{
ex.printStackTrace();
}
}
}
压缩文件代码:
import
java.io.
*
;
import
java.util.zip.
*
;
//
ZipOutputStream这个流在这里
import
java.util.
*
;
public
class
ZipOutputStreamTest
{
public
static
void
main(String[] args)
throws
Exception
{
File f
=
new
File(
"
a.jpg
"
);
FileInputStream fis
=
new
FileInputStream(f);
BufferedInputStream bis
=
new
BufferedInputStream(fis);
byte
[] buf
=
new
byte
[
1024
];
int
len;
FileOutputStream fos
=
new
FileOutputStream(f.getName()
+
"
.zip
"
);
BufferedOutputStream bos
=
new
BufferedOutputStream(fos);
ZipOutputStream zos
=
new
ZipOutputStream(bos);
//
压缩包
ZipEntry ze
=
new
ZipEntry(f.getName());
//
这是压缩包名里的文件名
zos.putNextEntry(ze);
//
写入新的 ZIP 文件条目并将流定位到条目数据的开始处
while
((len
=
bis.read(buf))
!=-
1
)
{
zos.write(buf,
0
,len);
zos.flush();
}
bis.close();
zos.close();
}
}
























































压缩文件代码:



























