Чи можемо ми перетворити байтовий масив в InputStream на Java?


129

Чи можемо ми перетворити байтовий масив в InputStream на Java? Я шукав в Інтернеті, але не зміг його знайти.

У мене є метод, в якому аргумент є InputStream.

У cphмене InputStream закодовано base64, тому мені довелося розшифрувати його за допомогою

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

Тепер, як я decodedBytesзнову конвертую InputStream?


1
Посилання "Використовувати" вгорі сторінок документа API дуже корисно для подібних проблем.
Том Хотін - тайклін

Відповіді:



4

Якщо ви використовуєте утиліту Base64 Роберта Хардера , тоді ви можете:

InputStream is = new Base64.InputStream(cph);

Або з сонячним JRE, ви можете:

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

Однак не покладайтеся на той клас, який продовжує залишатися частиною JRE або навіть продовжувати робити те, що, здається, робить сьогодні. Не кажіть не користуватися цим.

Є інші запитання щодо переповнення стека щодо декодування Base64, наприклад, цього.


10
Не використовуйте сонячний клас, який він є приватним, і його не слід використовувати, оскільки він може змінитися в будь-який час.
мП.

Я відредагую свою відповідь, щоб включити жахливі попередження. Код у питанні вже використовується, BASE64Decoderякий, імовірно,sun.misc.BASE64Decoder
Стівен Денне
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.