Java 8 - Base64
Con Java 8, Base64 finalmente tiene su merecido. Java 8 ahora tiene un codificador y decodificador incorporado para la codificación Base64. En Java 8, podemos usar tres tipos de codificación Base64.
Simple- La salida se asigna a un conjunto de caracteres que se encuentran en A-Za-z0-9 + /. El codificador no agrega ningún salto de línea en la salida y el decodificador rechaza cualquier carácter que no sea A-Za-z0-9 + /.
URL- La salida se asigna al conjunto de caracteres que se encuentran en A-Za-z0-9 + _. La salida es segura para URL y nombre de archivo.
MIME- La salida se asigna a un formato compatible con MIME. La salida se representa en líneas de no más de 76 caracteres cada una y utiliza un retorno de carro '\ r' seguido de un salto de línea '\ n' como separador de línea. No hay ningún separador de línea al final de la salida codificada.
Clases anidadas
No Señor. | Clase y descripción anidadas |
---|---|
1 | static class Base64.Decoder Esta clase implementa un decodificador para decodificar datos de bytes usando el esquema de codificación Base64 como se especifica en RFC 4648 y RFC 2045. |
2 | static class Base64.Encoder Esta clase implementa un codificador para codificar datos de bytes utilizando el esquema de codificación Base64 como se especifica en RFC 4648 y RFC 2045. |
Métodos
No Señor. | Nombre y descripción del método |
---|---|
1 | static Base64.Decoder getDecoder() Devuelve un decodificador Base64 que decodifica utilizando el esquema de codificación base64 de tipo básico. |
2 | static Base64.Encoder getEncoder() Devuelve un codificador Base64 que codifica utilizando el esquema de codificación base64 de tipo básico. |
3 | static Base64.Decoder getMimeDecoder() Devuelve un Decodificador Base64 que decodifica utilizando el esquema de decodificación base64 de tipo MIME. |
4 | static Base64.Encoder getMimeEncoder() Devuelve un codificador Base64 que codifica utilizando el esquema de codificación base64 de tipo MIME. |
5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Devuelve un codificador Base64 que codifica utilizando el esquema de codificación base64 de tipo MIME con una longitud de línea y separadores de línea especificados. |
6 | static Base64.Decoder getUrlDecoder() Devuelve un decodificador Base64 que decodifica utilizando el esquema de codificación base64 de tipo seguro URL y nombre de archivo. |
7 | static Base64.Encoder getUrlEncoder() Devuelve un codificador Base64 que codifica utilizando el esquema de codificación base64 de tipo seguro URL y nombre de archivo. |
Métodos heredados
Esta clase hereda métodos de la siguiente clase:
- java.lang.Object
Ejemplo de Base64
Cree el siguiente programa Java utilizando cualquier editor de su elección en, por ejemplo, C: /> 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(
"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());
}
}
}
Verificar el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\JAVA>javac Java8Tester.java
Ahora ejecute Java8Tester de la siguiente manera:
C:\JAVA>java Java8Tester
Debería producir el siguiente resultado:
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