Java8-base64
Java 8-Base64
Java 8では、Base64がついに期限を迎えました。 Java 8には、Base64エンコーディング用のエンコーダとデコーダが組み込まれています。 Java 8では、3種類のBase64エンコーディングを使用できます。
- シンプル-出力は、A-Za-z0-9 +/にある文字セットにマッピングされます。 エンコーダーは出力に改行を追加せず、デコーダーはA-Za-z0-9 +/以外の文字を拒否します。
- URL -出力は、A-Za-z0-9 + _にある文字セットにマッピングされます。 出力はURLおよびファイル名に対して安全です。
- MIME -出力はMIMEフレンドリ形式にマップされます。 出力は、それぞれ76文字以下の行で表され、改行文字 '\ n’に続く改行文字 '\ r’を使用します。 エンコードされた出力の最後に行区切り記号はありません。
入れ子クラス
Sr.No. | Nested class & Description |
---|---|
1 |
static class Base64.Decoder このクラスは、RFC 4648およびRFC 2045で指定されているBase64エンコードスキームを使用してバイトデータをデコードするためのデコーダーを実装します。 |
2 |
static class Base64.Encoder このクラスは、RFC 4648およびRFC 2045で指定されているBase64エンコードスキームを使用してバイトデータをエンコードするためのエンコーダーを実装します。 |
方法
Sr.No. | Method Name & Description |
---|---|
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を返します。 |
継承されるメソッド
このクラスは、次のクラスからメソッドを継承します-
- java.lang.Object
Base64の例
たとえばC:/> JAVAで選択したエディターを使用して、次のJavaプログラムを作成します。
Java8Tester.java
import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
public class HelloWorld {
public static void main(String args[]) {
try {
//Encode using basic encoder
String base64encodedString = Base64.getEncoder().encodeToString(
"finddevguides?java8".getBytes("utf-8"));
System.out.println("Base64 Encoded String (Basic) :" + base64encodedString);
//Decode
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
base64encodedString = Base64.getUrlEncoder().encodeToString(
"finddevguides?java8".getBytes("utf-8"));
System.out.println("Base64 Encoded String (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 Encoded String (MIME) :" + mimeEncodedString);
} catch(UnsupportedEncodingException e) {
System.out.println("Error :" + e.getMessage());
}
}
}
結果を確認する
次のように javac コンパイラを使用してクラスをコンパイルします-
C:\JAVA>javac Java8Tester.java
次のようにJava8Testerを実行します-
C:\JAVA>java Java8Tester
それは次の出力を生成する必要があります-
Base64 Encoded String (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg=
Original String: finddevguides?java8
Base64 Encoded String (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 Encoded String (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl
NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz
NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1
MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2
Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5
YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk
LWJiM2UtM2JhYzUxYzI5OWI4