Java 8 Base64: 단순, URL, MIME 인코딩 쉽게 하기
Java 8에서 Base64가 드디어 제자리를 찾았습니다. Java 8에는 Base64 인코딩을 위한 내장 인코더와 디코더가 있습니다. Java 8에서는 세 가지 유형의 Base64 인코딩을 사용할 수 있습니다.
단순(Simple) − 출력이 A-Za-z0-9+/ 문자 집합에 매핑됩니다. 인코더는 출력에 줄 바꿈을 추가하지 않으며, 디코더는 A-Za-z0-9+/ 이외의 문자를 거부합니다.
URL − 출력이 A-Za-z0-9+_ 문자 집합에 매핑됩니다. 출력이 URL 및 파일명으로 안전합니다.
MIME − 출력이 MIME 친화적 형식으로 표현됩니다. 출력은 최대 76자씩 줄로 표현되며, 캐리지 리턴('\r')과 라인피드('\n')를 줄 구분자로 사용합니다. 인코딩된 출력의 끝에는 줄 구분자가 없습니다.
중첩 클래스
| 번호 |
중첩 클래스 및 설명 |
| 1 |
static class Base64.Decoder
RFC 4648 및 RFC 2045에 지정된 Base64 인코딩 방식을 사용하여 바이트 데이터를 디코딩하는 디코더를 구현합니다. |
| 2 |
static class Base64.Encoder
RFC 4648 및 RFC 2045에 지정된 Base64 인코딩 방식을 사용하여 바이트 데이터를 인코딩하는 인코더를 구현합니다. |
메서드
| 번호 |
메서드 이름 및 설명 |
| 1 |
static Base64.Decoder getDecoder()
Basic 유형 base64 인코딩 방식을 사용하여 디코딩하는 Base64.Decoder를 반환합니다. |
| 2 |
static Base64.Encoder getEncoder()
Basic 유형 base64 인코딩 방식을 사용하여 인코딩하는 Base64.Encoder를 반환합니다. |
| 3 |
static Base64.Decoder getMimeDecoder()
MIME 유형 base64 디코딩 방식을 사용하여 디코딩하는 Base64.Decoder를 반환합니다. |
| 4 |
static Base64.Encoder getMimeEncoder()
MIME 유형 base64 인코딩 방식을 사용하여 인코딩하는 Base64.Encoder를 반환합니다. |
| 5 |
static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)
지정된 줄 길이와 줄 구분자를 사용하여 MIME 유형 base64 인코딩 방식을 사용하는 Base64.Encoder를 반환합니다. |
| 6 |
static Base64.Decoder getUrlDecoder()
URL 및 파일명 안전 유형 base64 인코딩 방식을 사용하여 디코딩하는 Base64.Decoder를 반환합니다. |
| 7 |
static Base64.Encoder getUrlEncoder()
URL 및 파일명 안전 유형 base64 인코딩 방식을 사용하여 인코딩하는 Base64.Encoder를 반환합니다. |
상속된 메서드
이 클래스는 다음 클래스에서 메서드를 상속받습니다.
Base64 예제
원하는 편집기를 사용하여 다음 Java 프로그램을 작성하세요. (예: C:/> JAVA)
Java8Tester.java
Live Demo
import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
public class HelloWorld {
public static void main(String args[]) {
try {
// 기본 인코더로 인코딩
String base64encodedString = Base64.getEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 인코딩 문자열 (Basic) :" + base64encodedString);
// 디코딩
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
System.out.println("원본 문자열: " + new String(base64decodedBytes, "utf-8"));
base64encodedString = Base64.getUrlEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 인코딩 문자열 (URL) :" + base64encodedString);
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 10; ++i) {
stringBuilder.append(UUID.randomUUID().toString());
}
byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
System.out.println("Base64 인코딩 문자열 (MIME) :" + mimeEncodedString);
} catch (UnsupportedEncodingException e) {
System.out.println("오류 :" + e.getMessage());
}
}
}
결과 확인
javac 컴파일러를 사용하여 클래스를 컴파일하세요.
C:\JAVA>javac Java8Tester.java
다음과 같이 Java8Tester를 실행하세요.
C:\JAVA>java Java8Tester
다음과 같은 출력이 나와야 합니다.
Base64 인코딩 문자열 (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg=
Original String: TutorialsPoint?java8
Base64 인코딩 문자열 (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 인코딩 문자열 (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl
NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz
NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1
MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2
Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5
YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk
LWJiM2UtM2JhYzUxYzI5OWI4