Possiamo convertire un array di byte in un InputStream in Java?


129

Possiamo convertire un array di byte in un InputStream in Java? Ho cercato su Internet ma non sono riuscito a trovarlo.

Ho un metodo che ha un InputStream come argomento.

InputStream cphche ho è codificato in base64, quindi ho dovuto decodificarlo usando

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

Ora come faccio a convertire decodedBytes nuovo in InputStream?


1
Il link "Usa" nella parte superiore delle pagine dei documenti API è molto utile per questo tipo di problemi.
Tom Hawtin - affronta il

Risposte:



4

Se si utilizza l'utilità Base64 di Robert Harder , è possibile eseguire:

InputStream is = new Base64.InputStream(cph);

O con Sun JRE, puoi fare:

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

Tuttavia, non fare affidamento sul fatto che quella classe continui a far parte del JRE, o addirittura continui a fare ciò che sembra fare oggi. Sun dice di non usarlo.

Esistono altre domande Stack Overflow sulla decodifica Base64, come questa.


10
Non usare la lezione di sole, è privata e non dovrebbe essere usata perché può cambiare in qualsiasi momento.
mP.

Modificherò la mia risposta per includere avvertimenti terribili. Il codice nella domanda sta già utilizzando il BASE64Decoderche è presumibilmentesun.misc.BASE64Decoder
Stephen Denne,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.