¿Podemos convertir una matriz de bytes en un InputStream en Java?


129

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

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

El InputStream cphque tengo está codificado en base64, así que tuve que decodificarlo usando

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

Ahora, ¿cómo puedo convertir de decodedBytesnuevo a InputStream?


1
El enlace "Usar" en la parte superior de las páginas de documentación de API es muy útil para este tipo de problemas.
Tom Hawtin - tackline

Respuestas:



4

Si usa la utilidad Base64 de Robert Harder , puede hacer lo siguiente:

InputStream is = new Base64.InputStream(cph);

O con sun's JRE, puedes hacer:

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

Sin embargo, no confíe 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 el desbordamiento de pila sobre la decodificación Base64, como esta.


10
No use la clase de sol, es privada y no debe usarse, ya que puede cambiar en cualquier momento.
mP.

Editaré mi respuesta para incluir advertencias nefastas. El código en la pregunta ya está utilizando, lo BASE64Decoderque presumiblemente essun.misc.BASE64Decoder
Stephen Denne el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.