Chúng ta có thể chuyển đổi một mảng byte thành InputStream trong Java không?


129

Chúng ta có thể chuyển đổi một mảng byte thành InputStream trong Java không? Tôi đã tìm kiếm trên internet nhưng không thể tìm thấy nó.

Tôi có một phương thức có InputStream làm đối số.

InputStream cphtôi có được mã hóa base64 nên tôi phải giải mã nó bằng cách sử dụng

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

Bây giờ làm thế nào để tôi chuyển đổi decodedBytesmột lần nữa InputStream?


1
Liên kết "Sử dụng" ở đầu trang tài liệu API rất hữu ích cho các loại sự cố này.
Tom Hawtin - tackline

Câu trả lời:



4

Nếu bạn sử dụng tiện ích Base64 của Robert Harder'ser , thì bạn có thể làm:

InputStream is = new Base64.InputStream(cph);

Hoặc với JRE của mặt trời, bạn có thể làm:

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

Tuy nhiên, đừng dựa vào lớp đó tiếp tục là một phần của JRE, hoặc thậm chí tiếp tục làm những gì nó dường như làm ngày hôm nay. Sun nói không dùng nó.

Có những câu hỏi khác về Stack Overflow về giải mã Base64, chẳng hạn như câu hỏi này.


10
Không sử dụng lớp mặt trời là riêng tư và không nên được sử dụng vì nó có thể thay đổi bất cứ lúc nào.
mP.

Tôi sẽ chỉnh sửa câu trả lời của mình để bao gồm các cảnh báo nghiêm trọng. Mã trong câu hỏi đã được sử dụng BASE64Decodercó lẽ làsun.misc.BASE64Decoder
Stephen Denne
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.