Java 8 Base64: Eenvoudige, URL en MIME Encoding
Met Java 8 heeft Base64 eindelijk de aandacht gekregen die het verdient. Java 8 beschikt nu over ingebouwde encoder en decoder voor Base64-encoding. In Java 8 kunnen we drie typen Base64-encoding gebruiken:
Simple − Output wordt gemapt op een set tekens in A-Za-z0-9+/. De encoder voegt geen line feed toe aan de output, en de decoder verwijst elk teken af dat niet in A-Za-z0-9+/ valt.
URL − Output wordt gemapt op een set tekens in A-Za-z0-9+_. Output is URL- en bestandsnaamveilig.
MIME − Output wordt gemapt op MIME-vriendelijk formaat. Output wordt weergegeven in regels van maximaal 76 tekens elk, en gebruikt een carriage return '\r' gevolgd door een linefeed '\n' als regel scheider. Geen regel scheider aan het einde van de gecodeerde output.
Geneste Klassen
| Nr. | Geneste Klasse & Beschrijving |
|---|---|
| 1 | static class Base64.Decoder Deze klasse implementeert een decoder voor het decoderen van bytedata met behulp van het Base64-encodingsschema zoals gespecificeerd in RFC 4648 en RFC 2045. |
| 2 | static class Base64.Encoder Deze klasse implementeert een encoder voor het coderen van bytedata met behulp van het Base64-encodingsschema zoals gespecificeerd in RFC 4648 en RFC 2045. |
Methoden
| Nr. | Methode Naam & Beschrijving |
|---|---|
| 1 | static Base64.Decoder getDecoder() Geeft een Base64.Decoder terug die decodeert met behulp van het Basic-type Base64-encodingsschema. |
| 2 | static Base64.Encoder getEncoder() Geeft een Base64.Encoder terug die codeert met behulp van het Basic-type Base64-encodingsschema. |
| 3 | static Base64.Decoder getMimeDecoder() Geeft een Base64.Decoder terug die decodeert met behulp van het MIME-type Base64-decodingsschema. |
| 4 | static Base64.Encoder getMimeEncoder() Geeft een Base64.Encoder terug die codeert met behulp van het MIME-type Base64-encodingsschema. |
| 5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Geeft een Base64.Encoder terug die codeert met behulp van het MIME-type Base64-encodingsschema met gespecificeerde regellengte en regelscheiders. |
| 6 | static Base64.Decoder getUrlDecoder() Geeft een Base64.Decoder terug die decodeert met behulp van het URL- en bestandsnaamveilige Base64-encodingsschema. |
| 7 | static Base64.Encoder getUrlEncoder() Geeft een Base64.Encoder terug die codeert met behulp van het URL- en bestandsnaamveilige Base64-encodingsschema. |
Overgeërfde Methoden
Deze klasse overerft methoden van de volgende klasse:
- java.lang.Object
Base64 Voorbeeld
Maak het volgende Java-programma aan met een editor naar keuze in, zeg, C:/> JAVA.
Java8Tester.java
Live Demoimport java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
public class HelloWorld {
public static void main(String args[]) {
try {
// Coderen met basis encoder
String base64encodedString = Base64.getEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 Gecodeerde String (Basic) :" + base64encodedString);
// Decoderen
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
System.out.println("Originele String: " + new String(base64decodedBytes, "utf-8"));
base64encodedString = Base64.getUrlEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 Gecodeerde 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 Gecodeerde String (MIME) :" + mimeEncodedString);
} catch (UnsupportedEncodingException e) {
System.out.println("Fout :" + e.getMessage());
}
}
}
Resultaat Verifiëren
Compileer de klasse met de javac compiler als volgt:
C:\JAVA>javac Java8Tester.java
Voer nu de Java8Tester uit als volgt:
C:\JAVA>java Java8Tester
Het zou de volgende output moeten produceren:
Base64 Gecodeerde String (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg= Originele String: TutorialsPoint?java8 Base64 Gecodeerde String (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg= Base64 Gecodeerde String (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJlNTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQzNDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFkLWJiM2UtM2JhYzUxYzI5OWI4
Java
- Encoder Fundamentals: 2-naar-1 en 7-Segment Binaire Encoders Ontwerpen
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList