Codificar y decodificar archivos a un String Base64

4,571 views
Skip to first unread message

Macabro

unread,
May 4, 2009, 11:29:12 AM5/4/09
to JavaSOS
Chicos:

Hay otro tema que he estado investigando pero no he encontrado nada
muy explicaticativo, lo que necesito es codificar y decodificar
archivos como imagenes o pdf a un string base 64. Que api se utiliza
para hacer esto? Hay ejemplo de codigo de esta operacion ? Hay alguna
guia o tutorial de como hacer esto?

De antena muchas gracias

Raúl Contreras

unread,
May 5, 2009, 3:08:17 AM5/5/09
to jav...@googlegroups.com

org.apache.axis.encoding.Base64

Codificar : 
Base64.encode(bytes [] data);
Decodificar:
Base64.decode(String arg0);

Saludos.
--
Raúl Contreras
Murcia, España

Pablo Saavedra

unread,
May 5, 2009, 5:32:22 AM5/5/09
to jav...@googlegroups.com
common-codec de apache es más general que axis.

Saludos.

2009/5/5 Raúl Contreras <raul.contr...@gmail.com>

Domingo Rodriguez

unread,
May 4, 2009, 6:16:35 PM5/4/09
to JavaSOS

Quizas exista un api, pero creo que esto funcionaria tambien..

java.io.File file= new java.io.File("c:/ratatouille.jpg");
java.io.FileInputStream fis= new java.io.FileInputStream(file);
byte[] buff= new byte[(int)file.length()];
fis.read(buff);
// codificar base64
String base64= new sun.misc.BASE64Encoder().encode(buff);
System.out.println("codificado:\n"+base64);
// decodificar base64
byte[] bytes= new sun.misc.BASE64Decoder().decodeBuffer(base64);
System.out.println("decodificado:\n"+new String(bytes));

Eso es, claro, si responde a tu pregunta..

Juan Gualberto

unread,
May 5, 2009, 3:53:49 PM5/5/09
to JavaSOS
Yo estaba usando hasta ahora bibliotecas de Eclipse para eso
(org.eclipse.core.internal.preferences.Base64), pero tu solucion me
gusta mas...

Dependemos de que se use la JRE de Sun, pero es la mas extendida...

Un saludo!

On 4 mayo, 17:16, Domingo Rodriguez <domingo.a.rodrig...@gmail.com>
wrote:

Favio DeMarco

unread,
May 7, 2009, 12:34:35 AM5/7/09
to javaZos
Tené en cuenta que Sun no te garantiza que no las cambie, o elimine,
de una versión a otra, y te recomienda fuertemente que NO las
utilices.
Es algo muy común, no sería raro que algún jar que estés utilizando
incluya una implementación:
<http://koders.com/?s=cdef%3abase64&la=Java&li=*>
si no es así, commons-codec es una buena opción

2009/5/5 Juan Gualberto <juangu...@gmail.com>:

Raúl Contreras

unread,
May 7, 2009, 4:23:50 AM5/7/09
to jav...@googlegroups.com
Al final da igual que lo hagas con :
-org.apache.axis.encoding.Base64
-org.apache.commons.codec.binary.Base64
-sun.misc.BASE64Decoder y sun.misc.BASE64Encoder

Te va dar el mismo resultado.

Yo utilizo el primero porque suelo hacer la transformación cuentro trabajo con Web Service y tengo a mano a Axis.
Si no lo tuviera utilizaría las herramientas que se encuentran en sun.misc.*, simplemente porque es standar de SUN y se encuentran dentro de rt.jar que viene con todas las distribuciones de jre. Asi me ahorro de tener que copiar otra librería.

Hay muchos colores en el mercado para escoger.

Macabro

unread,
May 7, 2009, 7:56:33 PM5/7/09
to JavaSOS
Gracias Amigos, Voy a Probar Nos Vemos

On 7 mayo, 04:23, Raúl Contreras <raul.contreras.cas...@gmail.com>
wrote:
> Al final da igual que lo hagas con :
> -org.apache.axis.encoding.Base64
> -org.apache.commons.codec.binary.Base64
> -sun.misc.BASE64Decoder y sun.misc.BASE64Encoder
>
> Te va dar el mismo resultado.
>
> Yo utilizo el primero porque suelo hacer la transformación cuentro trabajo
> con Web Service y tengo a mano a Axis.
> Si no lo tuviera utilizaría las herramientas que se encuentran en
> sun.misc.*, simplemente porque es standar de SUN y se encuentran dentro de
> rt.jar que viene con todas las distribuciones de jre. Asi me ahorro de tener
> que copiar otra librería.
>
> Hay muchos colores en el mercado para escoger.
>
> El 7 de mayo de 2009 6:34, Favio DeMarco <fav...@gmail.com> escribió:
>
>
>
>
>
> > Tené en cuenta que Sun no te garantiza que no las cambie, o elimine,
> > de una versión a otra, y te recomienda fuertemente que NO las
> > utilices.
> > Es algo muy común, no sería raro que algún jar que estés utilizando
> > incluya una implementación:
> > <http://koders.com/?s=cdef%3abase64&la=Java&li=*>
> > si no es así, commons-codec es una buena opción
>
> > 2009/5/5 Juan Gualberto <juangualbe...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages