旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java紧缩乱码【JAVA教程】,java,压缩乱码

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:82评论:0


导读:java紧缩乱码通经常运用java来打包文件生成紧缩文件后会涌现内容的中文乱码题目,这个题目网上很多人给出了处理要领,主要有两种要领:一是修正sun的源码;二是运用...

java紧缩乱码

通经常运用java来打包文件生成紧缩文件后会涌现内容的中文乱码题目,这个题目网上很多人给出了处理要领,主要有两种要领:

一是修正sun的源码;

二是运用开源的类库org.apache.tools.zip.ZipOutputStreamorg.apache.tools.zip.ZipEntry,这两个类ant.jar中有,能够直接下载运用即可。

毫无疑问,挑选后者更轻易,org.apache.tools.zip.ZipOutputStream默许运用项目的编码体式格局,理论上讲utf-8也是支撑中文的,若照样乱码,经由过程setEncoding要领改成gbk即可处理

示例代码以下:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;

public class CompressEncodingTest {
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        File f = new File("中文测试.txt");
        ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(
            new FileOutputStream("zipTest.zip"), 1024));
        zos.putNextEntry(new ZipEntry("中文.txt"));
        DataInputStream dis = new DataInputStream(new BufferedInputStream(
            new FileInputStream(f)));
        zos.putNextEntry(new ZipEntry(f.getName()));
        int c;
        while ((c = dis.read()) != -1) {
            zos.write(c);
        }

        zos.setEncoding("gbk");
        zos.setComment("中文测试");

        zos.closeEntry();
        zos.close();
    }
}

ki4网,大批的免费Java入门教程,迎接在线进修!

以上就是java紧缩乱码的细致内容,更多请关注ki4网别的相干文章!

标签:java压缩乱码


欢迎 发表评论: