java写的压缩一个目录下的文件,如果该目录下的文件是中文名,压缩后的Zip中,该文件名就是乱吗?求解决方案。。 据说用java.util.zip压缩的话是要有这个中文问题,因为它好像在内部写死了编码方式,可以找找用别的类试试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要用jdk的压缩包改用ant.jar里面的压缩组件就行了 //在classpath中引入ant.jar的包import java.io.*; import java.util.*;import java.io.File;import org.apache.tools.zip.*;public class CDGGzip { //boolean packFrame = false; private File srcPath =new File("d:"+File.separator+"邢晓宁"); private String outFilename=new String("d:"+File.separator+"邢晓宁.zip"); private int len=srcPath.listFiles().length; private String[] filenames = new String[len]; public void setSrcPath(String src){ srcPath=new File(src); } public File getSrcPath(){ return srcPath; } public void setOutFilename(String out){ outFilename=out; } public String getOutFilename(){ return outFilename; } public void gzip(){ byte[] buf = new byte[1024]; try { File[] files = srcPath.listFiles(); for(int i=0;i<len;i++) { //if(!files[i].isDirectory()) filenames[i]=srcPath.getPath()+File.separator+files[i].getName(); } ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename)); for (int i=0; i<filenames.length; i++) { FileInputStream in = new FileInputStream(filenames[i]); out.putNextEntry(new org.apache.tools.zip.ZipEntry(files[i].getName())); int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } out.closeEntry(); in.close(); } out.close(); } catch (IOException e) { System.out.println(e); } } public static void main(String arg[]){ CDGGzip cdggzip=new CDGGzip(); cdggzip.gzip(); } } 你也可以修改jdk源码中的zipinputstream.java,zipoutputstream.java的编码方式,然后把rt.jar重新打包. struts零配置ajax 控制下载文件按钮是否可用,怎么实现 Struts2和spring,Hibernate集成的问题 一个关于内外网访问的问题~~~~~急 关于hibernate的二级缓存 怎么能在lucene中运行CQL? 急啊?一个送分问题:上传的图片写入数据库,并且从数据库中读出显示在jsp页面上的问题? please help me,appreciate it 关于lomboz websphere 使用jfreechart做曲线图时,如何设置x轴和y轴的长度?如何设置纵坐标的初始值,比如我想把起点设置为500,间隔单位为2 mysql5.0应该用什么版本的jdbc驱动?
改用ant.jar里面的压缩组件就行了
import java.io.*;
import java.util.*;
import java.io.File;
import org.apache.tools.zip.*;public class CDGGzip
{
//boolean packFrame = false;
private File srcPath =new File("d:"+File.separator+"邢晓宁");
private String outFilename=new String("d:"+File.separator+"邢晓宁.zip");
private int len=srcPath.listFiles().length;
private String[] filenames = new String[len];
public void setSrcPath(String src){
srcPath=new File(src);
}
public File getSrcPath(){
return srcPath;
}
public void setOutFilename(String out){
outFilename=out;
}
public String getOutFilename(){
return outFilename;
} public void gzip(){
byte[] buf = new byte[1024];
try {
File[] files = srcPath.listFiles();
for(int i=0;i<len;i++)
{
//if(!files[i].isDirectory())
filenames[i]=srcPath.getPath()+File.separator+files[i].getName();
}
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
for (int i=0; i<filenames.length; i++)
{
FileInputStream in = new FileInputStream(filenames[i]);
out.putNextEntry(new org.apache.tools.zip.ZipEntry(files[i].getName()));
int len;
while ((len = in.read(buf)) > 0)
{
out.write(buf, 0, len);
} out.closeEntry();
in.close();
} out.close();
}
catch (IOException e)
{
System.out.println(e);
}
}
public static void main(String arg[]){
CDGGzip cdggzip=new CDGGzip();
cdggzip.gzip();
}
}