2009-11-26 19 views
115

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

Ho un metodo che ha un InputStream come argomento.

L'InputStream cph che ho è codificato in base64 così ho dovuto decodificarlo utilizzando

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

Ora come faccio a convertire decodedBytes nuovo per InputStream?

+1

' "utilizzazione" link nella parte superiore delle pagine doc API è molto utile per questo tipo di problemi. –

risposta

4

Se si utilizza Robert Harder's Base64 utility, allora si può fare:

InputStream is = new Base64.InputStream(cph); 

O con JRE del sole, si può fare:

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

Tuttavia don' Si basano su quella classe che continua a far parte del JRE, o addirittura continua a fare quello che sembra fare oggi. Sun dice di non usarlo.

ci sono altre domande su Stack Overflow decodifica Base64, come this one.

+10

Non utilizzare la classe Sun è privato e non deve essere utilizzato in quanto può cambiare in qualsiasi momento. –

+0

Modificherò la mia risposta per includere avvertimenti terribili. Il codice nella domanda sta già usando 'BASE64Decoder', che è presumibilmente' sun.misc.BASE64Decoder' –

Problemi correlati