Мне нужно преобразовать массив байтов в ByteArrayOutputStream, чтобы я мог отобразить его на экране.
Как преобразовать массив байтов в ByteArrayOutputStream
Ответы (3)
byte[] bytes = ....;
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.write(bytes, 0, bytes.length);
Описание метода:
Записывает len байтов из указанного массива байтов, начиная со смещения, в выходной поток этого массива байтов.
person
Josh M
schedule
02.09.2013
Вы не можете отобразить ByteArrayOutputStream. Я подозреваю, что вы пытаетесь сделать это
byte[] bytes = ...
String text = new String(bytes, "UTF-8"); // or some other encoding.
// display text.
Вы можете заставить ByteArrayOutputStream делать что-то подобное, но это не является очевидным, эффективным или передовым методом (поскольку вы не можете контролировать используемую кодировку)
person
Peter Lawrey
schedule
02.09.2013
С помощью JDK/11 вы можете использовать writeBytes(byte b[])
API, который в конечном итоге вызывает write(b, 0, b.length)
, как предложено в ответ Джоша.
/**
* Writes the complete contents of the specified byte array
* to this {@code ByteArrayOutputStream}.
*
* @apiNote
* This method is equivalent to {@link #write(byte[],int,int)
* write(b, 0, b.length)}.
*
* @param b the data.
* @throws NullPointerException if {@code b} is {@code null}.
* @since 11
*/
public void writeBytes(byte b[]) {
write(b, 0, b.length);
}
Пример кода просто преобразуется в --
byte[] bytes = new byte[100];
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.writeBytes(bytes);
person
Naman
schedule
10.08.2018
В чем разница между
writeBytes(byte[])
и write(byte[])
?
- person osvein; 23.05.2019
Он наследуется от OutputStream
- person osvein; 23.05.2019
ByteArrayOutputStream
предназначен для получения данных. Вы уверены, что не имеете в видуByteArrayInputStream
? - person Jon Skeet   schedule 02.09.2013