[原创]写一个仅仅压缩文件的例子

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

[原创]写一个仅仅压缩文件的例子

/**

* @(#) ZipFile.java

*

* Copyright 2004 Opensource Develop Team. All rights reserved.

*/

package com.opensource.zip;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

/**

* 在CSDN帖子http://community.csdn.net/Expert/topic/3316/3316352.xml?temp=.2301905中看到

* 关于ZIP压缩文件的问题,在该类中主要演示在ZIP压缩中可以不把文件路径压缩进去

*

* @author O.D.T

* @version 1.0 04/08/27

*/

public class ZipFile

{

public static void main(String[] args)

{

ArrayList fileNames = new ArrayList(); // 存放文件名,并非含有路径的名字

ArrayList files = new ArrayList(); // 存放文件对象

try

{

FileOutputStream fileOut = new FileOutputStream("E:/ZipOutOfPath.zip");

ZipOutputStream outputStream = new ZipOutputStream(fileOut);

File rootFile = new File("E:/temp");

listFile(rootFile, fileNames, files);

for (int loop=0; loop<files.size(); loop++)

{

FileInputStream fileIn = new FileInputStream((File)files.get(loop));

outputStream.putNextEntry(new ZipEntry((String)fileNames.get(loop)));

byte[] buffer = new byte[1024];

while (fileIn.read(buffer) != -1)

{

outputStream.write(buffer);

}

outputStream.closeEntry();

fileIn.close();

}

outputStream.close();

}

catch (IOException ioe)

{

ioe.printStackTrace();

}

}

static void listFile(File parentFile, List nameList, List fileList)

{

if (parentFile.isDirectory())

{

File[] files = parentFile.listFiles();

for (int loop=0; loop<files.length; loop++)

{

listFile(files[loop], nameList, fileList);

}

}

else

{

fileList.add(parentFile);

nameList.add(parentFile.getName());

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航