我想做个读取txt文件,并生成zip的功能,有没哪位高人提供下相关代码.比如我要读取f:/sql.txt文件,并把他压缩成zip格式,保存成f:/outfile.zip.
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();
}
}
}
ãè¿è¡ç¨åºç»æå¦ä¸ï¼
ãå缩ä¹åçæ件ç®å½ç»æï¼
å¦ææ¯ä½¿ç¨java.utilä¸çjava.util.zipè¿è¡æå å¤çï¼å¯è½ä¼åºç°ä¸æä¹±ç é®é¢ï¼è¿æ¯å 为javaçzipæ¹æ³ä¸æ¯æç¼ç æ ¼å¼çæ´æ¹ï¼æ们å¯ä»¥ä½¿ç¨ant.javaä¸çzipå·¥å ·ç±»æ¥è¿è¡æå å¤çãæ以éè¦å°ant.jarå¯¼å ¥é¡¹ç®çlibç®å½ä¸ã