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

Этот вопрос уже имеет ответ здесь:

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

18
задан Lee Warner 29 January 2010 в 17:11
поделиться

2 ответа

Самый простой способ - создать новый 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();
}
55
ответ дан 30 November 2019 в 05:56
поделиться

Простой способ быть использован org.apache.commons.io.ioutils.tobytearray (INPUTSTREAM) , см. Apache Commons IO .

9
ответ дан 30 November 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: