2009-11-26 6 views
115

Peut-on convertir un tableau d'octets en un InputStream en Java? J'ai regardé sur internet mais je n'ai pas pu le trouver.Peut-on convertir un tableau d'octets en un InputStream en Java?

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

Le InputStream cph J'est base64 donc je devais le décoder en utilisant

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

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

+1

Le lien « Utilisez » en haut des pages de doc de l'API est très utile pour ce genre de problèmes. –

Répondre

4

Si vous utilisez Robert Harder's Base64 utility, vous pouvez faire:

InputStream is = new Base64.InputStream(cph); 

Ou avec JRE de soleil, vous pouvez le faire:

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

don Cependant » t compter sur cette classe continuer à faire partie de la JRE, ou même continuer à faire ce qu'il semble faire aujourd'hui. Sun dit de ne pas l'utiliser.

Il y a d'autres questions Stack Overflow au sujet de décodage base64, comme this one.

+10

N'utilisez pas la classe de soleil, elle est privée et ne doit pas être utilisée car elle peut changer à tout moment. –

+0

Je vais modifier ma réponse pour inclure les avertissements désastreux. Le code dans la question utilise déjà 'BASE64Decoder' qui est probablement' sun.misc.BASE64Decoder' –

Questions connexes