В работе с 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.
Перейти в телеграм, чтобы получить результаты теста



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