java生成緊縮文件示例代碼。本站提示廣大學習愛好者:(java生成緊縮文件示例代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是java生成緊縮文件示例代碼正文
代碼:
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
/**
* @project: Test
* @author chenssy
* @date 2013-7-28
* @Description: 文件緊縮對象類
* 將指定文件/文件夾緊縮成zip、rar緊縮文件
*/
public class CompressedFileUtil {
/**
* 默許結構函數
*/
public CompressedFileUtil(){
}
/**
* @desc 將源文件/文件夾生成指定格局的緊縮文件,格局zip
* @param resourePath 源文件/文件夾
* @param targetPath 目標緊縮文件保留途徑
* @return void
* @throws Exception
*/
public void compressedFile(String resourcesPath,String targetPath) throws Exception{
File resourcesFile = new File(resourcesPath); //源文件
File targetFile = new File(targetPath); //目標
//假如目標途徑不存在,則新建
if(!targetFile.exists()){
targetFile.mkdirs();
}
String targetName = resourcesFile.getName()+".zip"; //目標緊縮文件名
FileOutputStream outputStream = new FileOutputStream(targetPath+"\\"+targetName);
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(outputStream));
createCompressedFile(out, resourcesFile, "");
out.close();
}
/**
* @desc 生成緊縮文件。
* 假如是文件夾,則應用遞歸,停止文件遍歷、緊縮
* 假如是文件,直接緊縮
* @param out 輸入流
* @param file 目的文件
* @return void
* @throws Exception
*/
public void createCompressedFile(ZipOutputStream out,File file,String dir) throws Exception{
//假如以後的是文件夾,則停止進一步處置
if(file.isDirectory()){
//獲得文件列表信息
File[] files = file.listFiles();
//將文件夾添加到下一級打包目次
out.putNextEntry(new ZipEntry(dir+"/"));
dir = dir.length() == 0 ? "" : dir +"/";
//輪回將文件夾中的文件打包
for(int i = 0 ; i < files.length ; i++){
createCompressedFile(out, files[i], dir + files[i].getName()); //遞歸處置
}
}
else{ //以後的是文件,打包處置
//文件輸出流
FileInputStream fis = new FileInputStream(file);
out.putNextEntry(new ZipEntry(dir));
//停止寫操作
int j = 0;
byte[] buffer = new byte[1024];
while((j = fis.read(buffer)) > 0){
out.write(buffer,0,j);
}
//封閉輸出流
fis.close();
}
}
public static void main(String[] args){
CompressedFileUtil compressedFileUtil = new CompressedFileUtil();
try {
compressedFileUtil.compressedFile("G:\\zip", "F:\\zip");
System.out.println("緊縮文件曾經生成...");
} catch (Exception e) {
System.out.println("緊縮文件生成掉敗...");
e.printStackTrace();
}
}
}