Java8-base64

提供:Dev Guides
移動先:案内検索

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