zoukankan      html  css  js  c++  java
  • Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)

    Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)

    学习了:http://www.tuicool.com/articles/V7BBvy

     引用原文:

    JDK中自带的ZipOutputStream在压缩文件时,如果文件名中有中文,则压缩后的
    
    zip文件打开时发现中文文件名变成乱码.
    
    解决的方法是使用apache-ant-zip.jar包(见附件)中的ZipOutputStream和ZipEntry.
    
    即,导入类:
    
    import org.apache.tools.zip.ZipEntry; 
    
    import org.apache.tools.zip.ZipOutputStream;
    
    并且注意,压缩之前调用 ZipOutputStream的out.setEncoding(System.getProperty("sun.jnu.encoding")); 方法,
    
    系统参数sun.jnu.encoding表示获取当前系统中的文件名的编码方式.这里将ZipOutputStream的文件名编码方式
    
    设置成系统的文件名编码方式.
    
    解压时,直接使用JDK原来的ZipInputStream即可.
    
    但是有个 需要注意 的地方是,在读取ZIP文件之前,需要设置:
    
    System.setProperty("sun.zip.encoding", System.getProperty("sun.jnu.encoding"));
    
    将系统的ZIP编码格式设置为系统文件名编码方式,否则解压时报异常.
    
    (网上,还有修改ZipInputStream源码的方式貌似太麻烦了,参考:http://zwllxs.iteye.com/blog/871260)
    
    ZIP代码参考http://szhnet.iteye.com/blog/199059,有修改.
  • 相关阅读:
    wait 和 notify 方法
    synchronized关键字
    多线程之thread、runnable的区别
    CodeForces 213 E
    hdu 3038 并查集
    zoj 3349 dp + 线段树优化
    hdu 4419 线段树 扫描线 离散化 矩形面积
    hdu 4262(线段树)
    hfut 1287
    hdu 4747 (线段树)
  • 原文地址:https://www.cnblogs.com/stono/p/6736329.html
Copyright © 2011-2022 走看看