Java8 Base64

Java 8 新特性Neue Funktionen in Java 8


In Java 8 ist die Base64-Kodierung zum Standard in der Java-Klassenbibliothek geworden.

Java 8 bietet integrierte Base64-Encoder und -Decoder.

Die Dienstprogrammklasse Base64 bietet eine Reihe statischer Methoden, um die folgenden drei Typen von BASE64-Encodern/-Decodern zu erhalten:

  • Basic:Die Ausgabe wird auf eine Menge von Zeichen A-Za-z0-9+/ abgebildet, die Codierung fügt keine Zeilenumbrüche hinzu, und die Decodierung der Ausgabe unterstützt nur A-Za-z0-9+/.
  • URL:Die Ausgabe wird auf eine Menge von Zeichen A-Za-z0-9+_ abgebildet, und die Ausgabe ist URL- und dateinamensicher.
  • MIME:Die Ausgabe wird auf ein MIME-freundliches Format abgebildet. Jede Ausgabezeile umfasst nicht mehr als 76 Zeichen und verwendet '\r' gefolgt von '\n' als Trennzeichen. Die codierte Ausgabe hat am Ende kein Zeilentrennzeichen.

Verschachtelte Klassen

Nein. Verschachtelte Klasse & Beschreibung
1 static class Base64.Decoder

Diese Klasse implementiert einen Decoder zum Decodieren von Byte-Daten mit Base64-Codierung.

2 static class Base64.Encoder

Diese Klasse implementiert einen Encoder zum Codieren von Byte-Daten mit Base64-Codierung.

Methoden

Nein. Methodenname & Beschreibung
1 static Base64.Decoder getDecoder()

Gibt einen Base64.Decoder zurück, der mit dem grundlegenden Base64-Kodierungsschema dekodiert.

2 static Base64.Encoder getEncoder()

Gibt einen Base64.Encoder zurück, der mit dem grundlegenden Base64-Kodierungsschema kodiert.

3 static Base64.Decoder getMimeDecoder()

Gibt einen Base64.Decoder zurück, der mit dem Base64-Kodierungsschema des MIME-Typs dekodiert.

4

static Base64.Encoder getMimeEncoder()

Gibt einen Base64.Encoder zurück, der mit dem Base64-Kodierungsschema des MIME-Typs kodiert.

5 static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)

Gibt einen Base64.Encoder zurück, der mit dem Base64-Kodierungsschema des MIME-Typs kodiert, wobei die Zeilenlänge und das Zeilentrennzeichen über Parameter angegeben werden können.

6 static Base64.Decoder getUrlDecoder()

Gibt einen Base64.Decoder zurück, der mit dem URL- und dateinamensicheren Base64-Kodierungsschema dekodiert.

7 static Base64.Encoder getUrlEncoder()

Gibt einen Base64.Encoder zurück, der mit dem URL- und dateinamensicheren Base64-Kodierungsschema kodiert.

Hinweis:Viele Methoden der Base64-Klasse werden vonjava.lang.Object,der Klasse geerbt.


Base64-Beispiel

Das folgende Beispiel demonstriert die Verwendung von Base64:

Java8Tester.java-Datei

import java.util.Base64; import java.util.UUID; import java.io.UnsupportedEncodingException; public class Java8Tester { public static void main(String args[]){ try { //Verwendung der Basis-Kodierung String base64encodedString = Base64.getEncoder().encodeToString("example?java8".getBytes("utf-8")); System.out.println("Base64-codierte Zeichenkette (Basic):" + base64encodedString); //Dekodieren byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); System.out.println("Original-Zeichenkette:" + new String(base64decodedBytes, "utf-8")); base64encodedString = Base64.getUrlEncoder().encodeToString("example?java8".getBytes("utf-8")); System.out.println("Base64-codierte Zeichenkette (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-kodierte Zeichenfolge (MIME):" + mimeEncodedString); }catch(UnsupportedEncodingException e){ System.out.println("Fehler :" + e.getMessage()); } } }

Beim Ausführen des obigen Skripts lautet die Ausgabe:

$ javac Java8Tester.java 
$ java Java8Tester
原始字符串: example?java8
Base64 编码字符串 (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 编码字符串 (MIME) :M2Q4YmUxMTEtYWRkZi00NzBlLTgyZDgtN2MwNjgzOGY2NGFlOTQ3NDYyMWEtZDM4ZS00YWVhLTkz
OTYtY2ZjMzZiMzFhNmZmOGJmOGI2OTYtMzkxZi00OTJiLWEyMTQtMjgwN2RjOGI0MTBmZWUwMGNk
NTktY2ZiZS00MTMxLTgzODctNDRjMjFkYmZmNGM4Njg1NDc3OGItNzNlMC00ZWM4LTgxNzAtNjY3
NTgyMGY3YzVhZWQyMmNiZGItOTIwZi00NGUzLTlkMjAtOTkzZTI1MjUwMDU5ZjdkYjg2M2UtZTJm
YS00Y2Y2LWIwNDYtNWQ2MGRiOWQyZjFiMzJhMzYxOWQtNDE0ZS00MmRiLTk3NDgtNmM4NTczYjMx
ZDIzNGRhOWU4NDAtNTBiMi00ZmE2LWE0M2ItZjU3MWFiNTI2NmQ2NTlmMTFmZjctYjg1NC00NmE1
LWEzMWItYjk3MmEwZTYyNTdk

Java 8 新特性Neue Funktionen in Java 8

Andere Erweiterungen