Подтвердить что ты не робот

В Java, как я могу преобразовать InputStream в массив байтов (byte [])?

Мой фон .net, я довольно новичок в Java. Я выполняю определенную работу для нашей команды java, и мне нужен архитектор, который использует объект InputStream (java.io). Чтобы выполнить цель метода, мне нужно преобразовать это в массив байтов. Есть ли простой способ сделать это?

4b9b3361

Ответ 1

Самый простой способ - создать новый ByteArrayOutputStream, скопировать туда байты и затем вызвать toByteArray:

public static byte[] readFully(InputStream input) throws IOException
{
    byte[] buffer = new byte[8192];
    int bytesRead;
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    while ((bytesRead = input.read(buffer)) != -1)
    {
        output.write(buffer, 0, bytesRead);
    }
    return output.toByteArray();
}

Ответ 2

Простым способом было бы использовать org.apache.commons.io.IOUtils.toByteArray( inputStream ), см. apache commons io.