Czy możemy przekonwertować tablicę bajtów na InputStream w Javie? Szukałem w Internecie, ale nie mogłem go znaleźć.
Mam metodę, która ma jako argument InputStream.
InputStream, cph
który mam, jest zakodowany w base64, więc musiałem go zdekodować za pomocą
BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedBytes = decoder.decodeBuffer(cph);
Jak teraz decodedBytes
ponownie przekonwertować na InputStream
?
java
base64
inputstream
rover12
źródło
źródło
Odpowiedzi:
Zastosowanie
ByteArrayInputStream
:InputStream is = new ByteArrayInputStream(decodedBytes);
źródło
Jeśli używasz narzędzia Base64 Roberta Hardera , możesz wykonać:
InputStream is = new Base64.InputStream(cph);
Lub za pomocą środowiska JRE firmy Sun możesz:
InputStream is = new com.sun.xml.internal.messaging.saaj.packaging.mime.util.BASE64DecoderStream(cph)
Nie należy jednak polegać na tym, że ta klasa nadal będzie częścią środowiska JRE, a nawet nadal będzie robić to, co wydaje się robić dzisiaj. Sun mówi, żeby go nie używać.
Istnieją inne pytania dotyczące przepełnienia stosu dotyczące dekodowania Base64, takie jak to.
źródło
BASE64Decoder
prawdopodobniesun.misc.BASE64Decoder