English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере мы изучим, как преобразовать входной поток в массив байт в Java.
Чтобы понять этот пример, вам следует знать следующееJava-программированиеТема:
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main { public static void main(String args[]) { try { //Создание входного потока byte[] input = {1, 2, 3, 4}; InputStream stream = new ByteArrayInputStream(input); System.out.println("Входной поток: " + stream); //Преобразование входного потока в массив байтов byte[] array = stream.readAllBytes(); System.out.println("Байтовый массив: " + Arrays.toString(array)) stream.close(); } catch (Exception e) { e.getStackTrace(); } } }
Результат вывода
Input Stream: java.io.ByteArrayInputStream@27082746 Байтовый массив: [1, 2, 3, 4]
В предыдущем примере мы создали входной поток (InputStream) под названием stream. Обратите внимание на эту строку,
byte[] array = stream.readAllBytes();
Здесь метод readAllBytes() возвращает все данные из потока и хранит их в массиве байтов.
Внимание:Мы уже использовали метод Arrays.toString() для преобразования всего массива в строку.
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main { public static void main(String args[]) { try { //Создание входного потока byte[] input = {1, 2, 3, 4}; InputStream stream = new ByteArrayInputStream(input); System.out.println("Входной поток: " + stream); //Создание потока вывода ByteArrayOutputStream output = new ByteArrayOutputStream(); //Создание массива байтов для хранения входного потока byte[] array = new byte[4]; int i; //Чтение всех данных из входного потока в массив while ((i = stream.read(array, 0, array.length)) != -1) { //Запись всех данных массива в вывод output.write(array, 0, i); } byte[] data = output.toByteArray(); //Преобразование входного потока в массив байтов System.out.println("Байтовый массив: " + Arrays.toString(data)); stream.close(); } catch (Exception e) { e.getStackTrace(); } } }
Результат вывода
Input Stream: java.io.ByteArrayInputStream@27082746 Byte Array: [1, 2, 3, 4]
В предыдущем примере мы создали поток ввода input из массива array. Обратите внимание на выражение
stream.read(array, 0, array.length)
Здесь все элементы потока хранятся в массиве, начиная с индекса 0. Затем мы храним все элементы массива в поток вывода, называемый output.
output.write(array, 0, i)
В конце концов, мы вызываем метод toByteArray() класса ByteArrayOutputStream, чтобы преобразовать поток вывода в массив байт с именем data.