Hemos estado investigando en todo internet para regalarte la respuesta a tu dilema, si tienes alguna inquietud puedes dejarnos tu inquietud y te responderemos con gusto.
Solución:
A partir de la v6, Java SE se envía con JAXB. javax.xml.bind.DatatypeConverter
posee static métodos que facilitan esto. Ver parseBase64Binary()
y printBase64Binary()
.
A partir de Java 8, existe una API con soporte oficial para la codificación y decodificación Base64. Con el tiempo, esta probablemente se convertirá en la opción predeterminada.
La API incluye la clase java.util.Base64
y sus clases anidadas. Admite tres sabores diferentes: básico, seguro para URL y MIME.
Código de muestra con la codificación “básica”:
import java.util.Base64;
byte[] bytes = "Hello, World!".getBytes("UTF-8");
String encoded = Base64.getEncoder().encodeToString(bytes);
byte[] decoded = Base64.getDecoder().decode(encoded);
La documentación para java.util.Base64
incluye varios métodos más para configurar codificadores y decodificadores, y para usar diferentes clases como entradas y salidas (matrices de bytes, cadenas, ByteBuffers, flujos java.io).
No es necesario utilizar recursos comunes: Sun envía un codificador base64 con Java. Puede importarlo como tal:
import sun.misc.BASE64Decoder;
Y luego úsalo así:
BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedBytes = decoder.decodeBuffer(encodedBytes);
Donde encodedBytes
es un java.lang.String
o un java.io.InputStream
. Solo ten cuidado de que el sun.*
las clases no son “oficialmente respaldadas” por Sun.
EDITAR: ¿Quién diría que esta sería la respuesta más controvertida que publicaría? Sé que los paquetes sun. * No son compatibles o no se garantiza que continúen existiendo, y sé acerca de Commons y lo uso todo el tiempo. Sin embargo, el cartel pedía una clase que estuviera “incluida con Sun Java 6”, y eso es lo que estaba tratando de responder. Estoy de acuerdo en que Commons es el mejor camino a seguir en general.
EDITAR 2: Como señala amir75 a continuación, Java 6+ se envía con JAXB, que contiene código compatible para codificar / decodificar Base64. Consulte la respuesta de Jeremy Ross a continuación.
Te mostramos las comentarios y valoraciones de los lectores
No se te olvide mostrar este tutorial si si solucionó tu problema.