Вебинары Разобраться в IT Реферальная программа Тесты
Программирование Аналитика Дизайн Маркетинг Управление проектами
05 Мар 2024
2 мин
250

Конвертация InputStream в массив байтов в Java

Пройдите тест, узнайте какой профессии подходите

В работе с Java часто возникает задача преобразования объектов типа InputStream в массив байтов. Например, при чтении данных из файла или из сетевого подключения.

В работе с Java часто возникает задача преобразования объектов типа InputStream в массив байтов. Например, при чтении данных из файла или из сетевого подключения.

InputStream inputStream = new FileInputStream("file.txt");

В таких случаях необходимо знать, как правильно и эффективно преобразовать InputStream в массив байтов. Этот процесс включает в себя чтение данных из InputStream и их сохранение в байтовый массив.

Для выполнения данной задачи можно использовать следующий код:

import java.io.InputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        InputStream inputStream = ... // ваш InputStream
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        int nRead;
        byte[] data = new byte[16384];

        while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
            buffer.write(data, 0, nRead);
        }

        buffer.flush();
        byte[] byteArray = buffer.toByteArray();
    }
}

В этом коде используется класс ByteArrayOutputStream, который представляет поток вывода, в котором данные записываются в байтовый массив. Буфер автоматически увеличивается по мере записи данных. Затем с помощью метода toByteArray() получаем массив байтов из буфера.

Если в процессе чтения данных возникнет исключение, оно будет перехвачено и обработано. После чтения всех данных из InputStream, не забудьте закрыть поток с помощью метода close().

inputStream.close();

Таким образом, можно эффективно и безопасно преобразовать InputStream в массив байтов в Java.

Добавить комментарий