web-dev-qa-db-fra.com

Pouvons-nous convertir un tableau d'octets en InputStream en Java?

Pouvons-nous convertir un tableau d'octets en InputStream en Java? J'ai cherché sur Internet mais je ne l'ai pas trouvé.

J'ai une méthode qui a un InputStream comme argument.

Le InputStream cph que j’ai est encodé en base64, donc j’ai dû le décoder à l’aide de

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

Maintenant, comment puis-je convertir à nouveau decodedBytes en InputStream?

122
rover12

Utilisez ByteArrayInputStream :

InputStream is = new ByteArrayInputStream(decodedBytes);
283
Daniel Rikowski

Si vous utilisez tilitaire Base64 de Robert Harder , vous pouvez alors:

InputStream is = new Base64.InputStream(cph);

Ou avec JRE de Sun, vous pouvez faire:

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

Cependant, ne comptez pas sur le fait que cette classe continue de faire partie de la JRE ou même de continuer à faire ce qu'elle semble faire aujourd'hui. Sun dit de ne pas l'utiliser.

Il y a d'autres questions sur Stack Overflow sur le décodage Base64, telles que celle-ci.

4
Stephen Denne