Java 8 - Base64
Met Java 8 komt Base64 eindelijk tot zijn recht. Java 8 heeft nu een ingebouwde encoder en decoder voor Base64-codering. In Java 8 kunnen we drie soorten Base64-codering gebruiken.
-
Eenvoudig − De uitvoer wordt toegewezen aan een set tekens die in A-Za-z0-9+/ liggen. De encoder voegt geen regelinvoer toe aan de uitvoer en de decoder verwerpt elk ander teken dan A-Za-z0-9+/.
-
URL − De uitvoer wordt toegewezen aan een reeks tekens die in A-Za-z0-9+_ liggen. Uitvoer is veilig voor URL en bestandsnaam.
-
MIME − De uitvoer is toegewezen aan een MIME-vriendelijk formaat. De uitvoer wordt weergegeven in regels van niet meer dan 76 tekens en gebruikt een regelterugloop '\r' gevolgd door een regelinvoer '\n' als regelscheidingsteken. Er is geen lijnscheidingsteken aanwezig aan het einde van de gecodeerde uitvoer.
Geneste klassen
Sr.nr. | Geneste klasse en beschrijving |
---|---|
1 | statische klasse Base64.Decoder Deze klasse implementeert een decoder voor het decoderen van bytegegevens met behulp van het Base64-coderingsschema zoals gespecificeerd in RFC 4648 en RFC 2045. |
2 | statische klasse Base64.Encoder Deze klasse implementeert een encoder voor het coderen van bytegegevens met behulp van het Base64-coderingsschema zoals gespecificeerd in RFC 4648 en RFC 2045. |
Methoden
Sr.nr. | Methodenaam en beschrijving |
---|---|
1 | statische Base64.Decoder getDecoder() Retourneert een Base64.Decoder die decodeert met behulp van het basis64-coderingsschema van het basistype. |
2 | statische Base64.Encoder getEncoder() Retourneert een Base64.Encoder die codeert met behulp van het basis64-coderingsschema van het type Basic. |
3 | statische Base64.Decoder getMimeDecoder() Retourneert een Base64.Decoder die decodeert met behulp van het MIME-type base64-decoderingsschema. |
4 | statische Base64.Encoder getMimeEncoder() Retourneert een Base64.Encoder die codeert met behulp van het MIME-type base64-coderingsschema. |
5 | statische Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Retourneert een Base64.Encoder die codeert met behulp van het MIME-type base64-coderingsschema met opgegeven regellengte en regelscheidingstekens. |
6 | statische Base64.Decoder getUrlDecoder() Retourneert een Base64.Decoder die decodeert met behulp van het veilige base64-coderingsschema voor URL en bestandsnaam. |
7 | statische Base64.Encoder getUrlEncoder() Retourneert een Base64.Encoder die codeert met behulp van het veilige base64-coderingsschema voor URL en bestandsnaam. |
Overerfde methoden
Deze klasse erft methoden van de volgende klasse −
- java.lang.Object
Base64-voorbeeld
Maak het volgende Java-programma met een editor naar keuze, bijvoorbeeld 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 { // Encode using basic encoder String base64encodedString = Base64.getEncoder().encodeToString( "TutorialsPoint?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( "TutorialsPoint?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()); } } }
Verifieer het resultaat
Stel de klas samen met javac compiler als volgt −
C:\JAVA>javac Java8Tester.java
Voer nu de Java8Tester als volgt uit −
C:\JAVA>java Java8Tester
Het zou de volgende output moeten produceren −
Base64 Encoded String (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg= Original String: TutorialsPoint?java8 Base64 Encoded String (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg= Base64 Encoded String (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1 MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2 Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5 YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk LWJiM2UtM2JhYzUxYzI5OWI4
Java