ファイル圧縮を実現する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");
}
}
様々なコードクリップを収集していると