用Java自带的类 java.util.zip进行文件/目录的压缩的话,不支持中文的名件/目录命名,如果有中文名,那么打包就会失败。经过在网络搜索和实践,发现在一般的Ant.jar类库中也有zip类,import org.apache.tools.zip.*,能够解决不支持中文文件目录的问题。
package com.moonights.tools;
import java.io.*;
import java.util.zip.*;
//import org.apache.tools.zip.*;
/**
*
* @author moonights
*
*/
public class ZipTest {
/*
* @param inPath:要压缩的文件路径
* @param newFileName:压缩后的文件名
*/
public void zip(String inPath,String newFileName){
try {
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(inPath), "ISO8859_1"));
FileOutputStream f = new FileOutputStream(newFileName + ".zip");
CheckedOutputStream ch = new CheckedOutputStream(f, new CRC32());
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(
ch));
int c;
out.putNextEntry(new ZipEntry(newFileName));
while ((c = in.read()) != -1)
out.write(c);
in.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* test
*/
public static void main(String[] args) {
new ZipTest().zip("D://readme.txt", "D://aaa");
//new ZipTest().zip("D://eclipse插件//向表格中增加一行.txt", "D://aaa");
}
}