2009-11-26 8 views
115

¿Podemos convertir una matriz de bytes en un InputStream en Java? He estado buscando en internet pero no pude encontrarlo.¿Podemos convertir una matriz de bytes en un InputStream en Java?

Tengo un método que tiene un InputStream como argumento.

El InputStream cph que tengo es base64 así que tuve que decodificarlo usando

BASE64Decoder decoder = new BASE64Decoder(); 
byte[] decodedBytes = decoder.decodeBuffer(cph); 

Ahora, ¿cómo puedo convertir decodedBytes de nuevo para InputStream?

+1

El enlace de "uso" en la parte superior de las páginas de documentación del API es muy útil para este tipo de problemas. –

Respuesta

4

Si utiliza Robert Harder's Base64 utility, entonces usted puede hacer:

InputStream is = new Base64.InputStream(cph); 

O con JRE de Sun, que puede hacer:

InputStream is = new 
com.sun.xml.internal.messaging.saaj.packaging.mime.util.BASE64DecoderStream(cph) 

Sin embargo don' Confío en que esa clase continúe siendo parte del JRE, o incluso continúe haciendo lo que parece hacer. hoy. Sun dice que no lo use.

Hay otras preguntas sobre desbordamiento de pila de decodificación base 64, como this one.

+10

No utilice la clase de sol, es privado y no debe usarse, ya que puede cambiar en cualquier momento. –

+0

Editaré mi respuesta para incluir advertencias calamitosas. El código en la pregunta ya está usando 'BASE64Decoder' que es presumiblemente' sun.misc.BASE64Decoder' –

Cuestiones relacionadas