处理ZIP文件的类在java.util.zip中而不在java.io中,但还是java.io.FilterInputStream和
java.io.FilterOutputStream的子类。
ZipInputStream zin = new ZipInputStream(new FileInputStream(zipname));
ZipEntry entry;
while ((entry = zin.getNextEntry())!=null)
{
analyze entry;
read the contents of zin;
zin.colseEntry();
}
zin.close;
读取zip条目的内容,很可能不太愿意使用原始的read方法,通常,会使用更适宜的流过滤器的
方法。
BufferedReader in = new BufferedReader(new InputStreamReader(zin));
String s;
while ((s = in.readLine()) != null);
当向一个ZIP文件内写入时,需要打开一个构造器中包含的FileOutputStream的ZipOutputStream文件流。
对于每一条希望置入ZIP文件的条目,都要创建一个ZipEntry对象。只要把文件传给ZipEntry构造器,它
将会自动设置其他参数,诸如文件日期和解压方法等。如果愿意,可以覆盖这些设置。随后,可以调用
ZipOutputStream的putNextEntry方法来开始写入一个新文件。将文件传给ZIP流。完成后调用closeEntry。
代码框架:
FileOutputStream fout = new FileOutputStream("test.zip");
ZipOutputStream zout = new ZipOutputStream(fout);
for all files
{
ZipEntry ze = new ZipEntry(filename);
zout.putNextEntry(ze);
send data to zout;
zout.closeEntry();
}
zout.close();
java.io.FilterOutputStream的子类。
ZipInputStream zin = new ZipInputStream(new FileInputStream(zipname));
ZipEntry entry;
while ((entry = zin.getNextEntry())!=null)
{
analyze entry;
read the contents of zin;
zin.colseEntry();
}
zin.close;
读取zip条目的内容,很可能不太愿意使用原始的read方法,通常,会使用更适宜的流过滤器的
方法。
BufferedReader in = new BufferedReader(new InputStreamReader(zin));
String s;
while ((s = in.readLine()) != null);
当向一个ZIP文件内写入时,需要打开一个构造器中包含的FileOutputStream的ZipOutputStream文件流。
对于每一条希望置入ZIP文件的条目,都要创建一个ZipEntry对象。只要把文件传给ZipEntry构造器,它
将会自动设置其他参数,诸如文件日期和解压方法等。如果愿意,可以覆盖这些设置。随后,可以调用
ZipOutputStream的putNextEntry方法来开始写入一个新文件。将文件传给ZIP流。完成后调用closeEntry。
代码框架:
FileOutputStream fout = new FileOutputStream("test.zip");
ZipOutputStream zout = new ZipOutputStream(fout);
for all files
{
ZipEntry ze = new ZipEntry(filename);
zout.putNextEntry(ze);
send data to zout;
zout.closeEntry();
}
zout.close();