Bisakah kita mengubah array byte menjadi InputStream di Java?

129

Bisakah kita mengubah array byte menjadi InputStream di Java? Saya telah mencari di internet tetapi tidak dapat menemukannya.

Saya memiliki metode yang memiliki argumen InputStream.

InputStream yang cphsaya miliki adalah base64 yang dikodekan jadi saya harus mendekodekannya menggunakan

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

Sekarang bagaimana cara saya mengonversi decodedByteslagi InputStream?

rover12
sumber
1
Tautan "Gunakan" di bagian atas halaman dokumen API sangat berguna untuk masalah seperti ini.
Tom Hawtin - tackline

Jawaban:

4

Jika Anda menggunakan utilitas Base64 milik Robert Harder , maka Anda dapat melakukannya:

InputStream is = new Base64.InputStream(cph);

Atau dengan JRE matahari, Anda dapat melakukan:

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

Namun jangan mengandalkan kelas yang terus menjadi bagian dari JRE, atau bahkan terus melakukan apa yang tampaknya dilakukan hari ini. Sun bilang jangan menggunakannya.

Ada pertanyaan Stack Overflow lain tentang decoding Base64, seperti ini.

Stephen Denne
sumber
10
Jangan gunakan kelas sun itu pribadi dan tidak boleh digunakan karena dapat berubah kapan saja.
mP.
Saya akan mengedit jawaban saya untuk memasukkan peringatan yang mengerikan. Kode dalam pertanyaan ini sudah menggunakan BASE64Decoderyang mungkinsun.misc.BASE64Decoder
Stephen Denne