2009-11-26 37 views
115

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

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

Các InputStream cph tôi có là mã hóa base64 vì vậy tôi đã phải giải mã nó bằng cách sử

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

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

+1

Các "Sử dụng" liên kết ở phía trên cùng của trang doc API là rất hữu ích cho các loại vấn đề. –

Trả lời

4

Nếu bạn sử dụng Robert Harder's Base64 utility, sau đó bạn có thể làm:

InputStream is = new Base64.InputStream(cph); 

Hoặc với JRE 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 don' t dựa vào lớp học đó 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ì có vẻ như hôm nay. Sun nói không sử dụng nó.

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

+10

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

+0

Tôi sẽ chỉnh sửa câu trả lời của mình để bao gồm cảnh báo nghiêm trọng. Mã trong câu hỏi đã sử dụng 'BASE64Decoder' có lẽ là' sun.misc.BASE64Decoder' –

Các vấn đề liên quan