본문 바로가기
JAVA/파일처리

Java 이미지 네트워크 발송 또는 첨부시 깨짐 방지 - Base64

by heavenLake 2020. 7. 25.
반응형

주로 메일등 네트워크 발송등에서 이미지, 오디오 파일을 보낼 때 깨지는 일이 생기지 않도록 공통으로

64개 아스키 코드를 이용하여 2진 데이터를 변환하기 위해 BASE64를 이용한다.  
하지만  Base64로 인코딩하면 크기가 33% 커진다고 합니다.

 

아래 예제는 파일을 직접핸들링하는 예제는 아니고 간단한 사용법입니다.

실제로 사용시는 보낼 때 인코딩하고 받아서 처리할 때 디코딩하면 됩니다.

package test.sh.file_directory;

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;

public class Base64Test {
    public static void main(String[] args) throws java.io.IOException {
    	
        BASE64Encoder encoder = new BASE64Encoder();
        BASE64Decoder decoder = new BASE64Decoder();
        
        String a1, a2, a3;
        byte[] b1, b2;

        a1 = "2byte input output teste";
        b1 = a1.getBytes();
        a2 = encoder.encode(b1);
        System.out.println("[" + a1 + "] was encoded to [" + a2 + "]");
        
        b2 = decoder.decodeBuffer(a2);
        a3 = new String(b2);
        System.out.println("[" + a2 + "] was decoded to [" + a3 + "]");

        a1 = "베이스64 테스트";
        b1 = a1.getBytes();
        a2 = encoder.encode(b1);
        System.out.println("[" + a1 + "] was encoded to [" + a2 + "]");
        
        b2 = decoder.decodeBuffer(a2);
        a3 = new String(b2);
        System.out.println("[" + a2 + "] was decoded to [" + a3 + "]");
        
    }
   
}

 

 

반응형

'JAVA > 파일처리' 카테고리의 다른 글

ArrayCopy 자바 두개 배열 합치기  (0) 2020.07.25
java 문자 캐릭터셋 변환(encoding/decoding)  (0) 2020.07.25

댓글