Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Base64 en Java 8: Codificación Simple, URL y MIME Simplificada

Java 8 incorpora finalmente soporte nativo para Base64 con codificadores y decodificadores integrados. Se admiten tres tipos de codificación:

Clases Anidadas

Nº Clase Anidada y Descripción
1

static class Base64.Decoder

Decodificador para datos byte usando el esquema Base64 (RFC 4648 y RFC 2045).

2

static class Base64.Encoder

Codificador para datos byte usando el esquema Base64 (RFC 4648 y RFC 2045).

Métodos Estáticos Principales

Nº Método y Descripción
1

static Base64.Decoder getDecoder()

Devuelve un decodificador para el esquema Basic.

2

static Base64.Encoder getEncoder()

Devuelve un codificador para el esquema Basic.

3

static Base64.Decoder getMimeDecoder()

Devuelve un decodificador para el esquema MIME.

4

static Base64.Encoder getMimeEncoder()

Devuelve un codificador para el esquema MIME.

5

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

Devuelve un codificador MIME con longitud de línea y separadores personalizados.

6

static Base64.Decoder getUrlDecoder()

Devuelve un decodificador para el esquema URL/filename-safe.

7

static Base64.Encoder getUrlEncoder()

Devuelve un codificador para el esquema URL/filename-safe.

Hereda métodos de java.lang.Object.

Ejemplo Completo

Crea el siguiente programa en C:/JAVA.

Java8Tester.java

Demo en vivo
import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;

public class HelloWorld {
    public static void main(String args[]) {
        try {
            // Codificación Basic
            String base64encodedString = Base64.getEncoder().encodeToString(
                "TutorialsPoint?java8".getBytes("utf-8"));
            System.out.println("Base64 Codificado (Basic) :" + base64encodedString);

            // Decodificación
            byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
            System.out.println("Cadena Original: " + new String(base64decodedBytes, "utf-8"));

            // Codificación URL
            base64encodedString = Base64.getUrlEncoder().encodeToString(
                "TutorialsPoint?java8".getBytes("utf-8"));
            System.out.println("Base64 Codificado (URL) :" + base64encodedString);

            // Codificación MIME (datos largos)
            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 Codificado (MIME) :" + mimeEncodedString);

        } catch (UnsupportedEncodingException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

Verificar el Resultado

C:\JAVA>javac Java8Tester.java
C:\JAVA>java Java8Tester

Salida esperada (el MIME variará por UUIDs aleatorios):

Base64 Codificado (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg=
Cadena Original: TutorialsPoint?java8
Base64 Codificado (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 Codificado (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl
NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz
NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1
MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2
Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5
YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk
LWJiM2UtM2JhYzUxYzI5OWI4

Java

  1. Fundamentos de Codificadores: Diseño de Codificadores Binarios 2-a-1 y 7-Segmentos
  2. Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
  3. Comentarios en Java: Tipos, Uso y Mejores Prácticas
  4. Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
  5. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
  6. Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
  7. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  8. Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
  9. Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
  10. Aserciones en Java: Guía práctica para detectar bugs y asegurar fiabilidad del código
  11. Entendiendo Java Vector: Uso, Características y Comparación con ArrayList