Bir bayt dizisini Java'da bir InputStream'e dönüştürebilir miyiz?


130

Bir bayt dizisini Java'da bir InputStream'e dönüştürebilir miyiz? İnternete bakıyordum ama bulamadım.

Bağımsız değişken olarak InputStream içeren bir yöntemim var.

cphSahip olduğum InputStream , base64 kodlu olduğundan, bunu kullanarak kodunu çözmek zorunda kaldım.

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

Şimdi decodedBytestekrar nasıl dönüştürebilirim InputStream?


1
API doküman sayfalarının üst kısmındaki "Kullanım" bağlantısı bu tür sorunlar için çok kullanışlıdır.
Tom Hawtin - tackline

Yanıtlar:



4

Eğer kullanırsanız , Robert Harder en Base64 yarar , o zaman yapabilirsiniz:

InputStream is = new Base64.InputStream(cph);

Veya sun's JRE ile şunları yapabilirsiniz:

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

Bununla birlikte, bu sınıfın JRE'nin bir parçası olmaya devam ettiğine veya hatta bugün yaptığı gibi göründüğüne güvenmeyin. Sun kullanmamamı söylüyor.

Base64 kod çözme hakkında bunun gibi başka Stack Overflow soruları da var .


10
Güneş sınıfını kullanmayın, özeldir ve her an değişebileceği için kullanılmamalıdır.
mP.

Cevabımı ciddi uyarıları içerecek şekilde düzenleyeceğim. BASE64DecoderMuhtemelen sorudaki kod zaten kullanıyorsun.misc.BASE64Decoder
Stephen Denne
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.