'압축'에 해당되는 글 2건

  1. 2019.10.06 Java String Compression
  2. 2014.10.10 tar.bz2, tar.gz, tgz 압축풀기
2019. 10. 6. 11:47

String > byte[] > 압축 > byte[] ==[전송]==> byte[] > 압축 해제 > byte[] > String

 

String이 네트워크에서 전송이 된다면 1byte 문자세트를 이용하는 것이 바람직하다.

String > byte[] > 압축 > byte[] > String ==[전송]==> String >  byte[] > 압축 해제 > byte[] > String문제는

new String(baos.toByteArray(), "ISO-8859-1") String ==[전송]==>String :  input.getBytes("ISO-8859-1")

 

입력된 String은 한글이 포함된 UTF-8이라고 가정하여 압축 해제 후에 한글이 깨지지 않게  UTF-8 잊지 마세요....

 

    public static String compress(String input) throws Exception {
        String result = null;
        if (input != null) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            GZIPOutputStream gzipos = new GZIPOutputStream(baos);
            gzipos.write(input.getBytes());
            gzipos.close();
            result = new String(baos.toByteArray(), "ISO-8859-1");
            baos.close();
        }
        return result;
    }


    public static String decompress(String input) throws IOException {

        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(input.getBytes("ISO-8859-1"));
        GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream);
        BufferedInputStream bufferedInputStream = new BufferedInputStream(gzipInputStream);
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
         
        byte[] buffer = new byte[1024];
         
        int length;
        while((length = bufferedInputStream.read(buffer,0,1024)) > 0) {
            byteArrayOutputStream.write(buffer, 0, length);
        }
         
        bufferedInputStream.close();
        gzipInputStream.close();
        byteArrayInputStream.close();
        byteArrayOutputStream.close();
         
        return byteArrayOutputStream.toString("UTF-8");  
    }

'개발 거들기' 카테고리의 다른 글

해당월의 마지막 날짜 가져오기  (0) 2017.02.22
소스를 블로그에 올릴 때  (0) 2016.05.12
ATOM에서 TODO관리하기  (0) 2015.12.21
git 로컬 저장소 생성(.git 폴더)  (0) 2015.01.14
git 수정사항 확인  (0) 2015.01.14
Posted by 모바일헌터
2014. 10. 10. 13:20

tar 명령을 위해서 여러 개의 파일이나 폴더들을 하나의 파일로 만들거나 풀기 위하여 사용한다. 

- tgz 압축풀기 : tar xvfz example .tgz

1. 하나의 파일로 만들기
$ tar cf [파일] [대상 파일 또는 폴더]

2. 하나의 파일에서 풀어내기
 $ tar xf [파일] 

-c Create : 하나의 파일을 생성한다.
-x Extract : 파일로부터 여러 파일을 푼다.

-f 옵션: 파일의 위치 및 파일명을 지정할 수 있다.
-v 옵션: 과정을 보여준다.

-z 옵현: 압축을 사용한다.
-x 옵션: 압축을 사용하여 압축을 해제한다.

3. 하나의 파일로 압축하기 (압축 방법별 옵션)
$ tar czvf [파일] [대상 파일 또는 폴더]

$ tar czvf FileZilla.tar.gz ./Install FileZilla.app        # z : zip 

$ tar cjvf FileZilla.tar.bz2 ./Install FileZilla.app      # j : bzip2  
>> FileZilla의 경우 현재는 dmg를 지원하지만 예전 버전의 경우 .tar.bz2로 압축되어 있었다.

$ tar cJvf FileZilla.tar.xz ./Install FileZilla.app       # J : xz


4. 하나의 압축파일로 풀어내기 (압축 방법-확장자-별 옵션)
$ tar xzvf [파일

tar xzyf FileZilla_3.9.0.5-01_macosx-x86-devshare.app.tar.bz2

x Install FileZilla.app/
...
x Install FileZilla.app/Contents/_CodeSignature/CodeResources



Posted by 모바일헌터