>  기사  >  Java  >  자바 압축 잘못된 코드

자바 압축 잘못된 코드

angryTom
angryTom원래의
2019-11-15 11:50:162348검색

자바 압축 잘못된 코드

java 압축 왜곡 코드

보통 Java는 패키지에 사용됩니다. 파일 생성 파일을 압축하면 중국어 내용이 깨집니다. 인터넷의 많은 사람들이 이 문제에 대한 해결책을 제시했습니다.

하나는 sun의 소스 코드를 수정하는 것입니다.

#🎜🎜 #두 번째는 오픈 소스 클래스 라이브러리를 사용하는 것입니다

org.apache.tools.zip.ZipOutputStreamorg.apache.tools.zip.ZipEntry#🎜 🎜#, 이 두 클래스는 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();
    }
}

php 중국 웹사이트, 다수의 무료

Java 입문 튜토리얼

, 온라인 학습을 환영합니다!

위 내용은 자바 압축 잘못된 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.