您现在的位置是:首页
>
手机解压加密压缩包 用JAVA解压ZIP
用JAVA解压ZIP 关于解压ZIP文件的类 解决了中文问题及提高了解压的速度.希望对大家有所帮助. im ort java io * im ort java util * im ort

用JAVA解压ZIP
关于解压ZIP文件的类 解决了中文问题及提高了解压的速度.希望对大家有所帮助. import java io *; import java util *; import java util zip *; import sun io *; public class linzip { public static String make toGB(String str) { try{ String str = new String(str getBytes( _ ) GB ); return str ; }catch(UnsupportedEncodingException ioe){ return str; } } public static void main(String[] args) { if (args length < 1){ System.err.println("Required parameter missing!"); System.exit(-1); } File infile = new File(args[0]); try{ //检查是否是ZIP文件 ZipFile zip = new ZipFile(infile); zip.close(); //建立与目标文件的输入连接 ZipInputStream in = new ZipInputStream(new FileInputStream(infile)); ZipEntry file = in.getNextEntry(); int i =infile.getAbsolutePath().lastIndexOf('.'); String dirname = new String(); if ( i != -1 ) dirname = infile.getAbsolutePath().substring(0,i); else dirname = infile.getAbsolutePath(); File newdir = new File(dirname); newdir.mkdir(); byte[] c = new byte[1024]; int len; int slen; while (file != null){ i = make8859toGB(file.getName()).replace('/','\').lastIndexOf('\'); if ( i != -1 ){ File dirs = new File(dirname+File.separator+make8859toGB(file.getName()).replace('/','\').substring(0,i)); dirs.mkdirs(); dirs = null; } System.out.print("Extract "+make8859toGB(file.getName()).replace('/','\')+" ........ "); if (file.isDirectory()){ File dirs = new File(make8859toGB(file.getName()).replace('/','\')); dirs.mkdir(); dirs = null; } else{ FileOutputStream out = new FileOutputStream(dirname+File.separator+make8859toGB(file.getName()).replace('/','\')); while((slen = in.read(c,0,c.length)) != -1) out.write(c,0,slen); out.close(); } System.out.print("O.K.n"); file = in.getNextEntry(); } in.close(); }catch(ZipException zipe){ MessageBox(0,infile.getName()+"不是一个ZIP文件!","文件格式错误",16); }catch(IOException ioe){ MessageBox(0,"读取"+args[0]+"时错误!","文件读取错误",16); }catch(Exception i){ System.out.println("over"); } } /** * @dll.import("USER32", auto) */ public static native int MessageBox(int hWnd, String lpText, String lpCaption, int uType); } 以上程序在WIN98&VJ6.0测试通过. lishixinzhi/Article/program/Java/Javascript/201311/25289 很赞哦! (1040)