ファイル圧縮を実現するJava


最近転職する人が多いので、自分の判断に多少の影響を与えています.現在、PHPプロジェクトを維持しています.多くの人が少ないので、資源が少なく、コードに気をつけるしかありません.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipOutputStream;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/***
 *        
 */
public class ZipFilesUtil {

	//log
	private static Log log = LogFactory.getLog(ZipFilesUtil.class);
	
	/***
	 *   
	 * @param filePath :          ,      
	 * @param zipFileName :          --    zip rar
	 */
	public static void zipFiles(String filePath, String zipFileName){
		try {
			File file = new File(filePath);
			ZipOutputStream zOut = new ZipOutputStream(new FileOutputStream(zipFileName));
			ZipFilesUtil.zip(zOut, file, "");
			zOut.close();
		} catch (Exception e) {
			log.error(e.getStackTrace()[0].toString());
		}
	}
	
	/***
	 *       
	 */
	private static void zip(ZipOutputStream out, File f, String base){
        try {
			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;
			   while ( (b = in.read()) != -1) {
			    out.write(b);
			 }
			 in.close();
      }
		} catch (FileNotFoundException e) {
			log.error(e.getStackTrace()[0].toString());
		} catch (IOException e) {
			log.error(e.getStackTrace()[0].toString());
		}
    }
	
	/***
	 *    
	 */
	public static void main(String[] args){
		ZipFilesUtil.zipFiles("D:/test", "D:/test.zip");
		ZipFilesUtil.zipFiles("D:/test", "D:/test.rar");
	}
	
}

様々なコードクリップを収集していると