В работе с 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.
Добавить комментарий