РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
841 of 1163 menu

Метод readAllBytes

Метод readAllBytes класса InputStream читает все оставшиеся байты из входного потока и возвращает их в виде массива байтов типа byte[]. Метод не принимает параметров. Чтение продолжается до достижения конца потока. После успешного выполнения метода поток считается полностью прочитанным. Метод блокирует выполнение программы до тех пор, пока все данные не будут прочитаны или не произойдет ошибка ввода-вывода.

Если поток уже был закрыт или произошла ошибка ввода-вывода, метод выбрасывает исключение IOException. Данный метод удобен для небольших потоков, размер которых заранее известен или невелик, поскольку весь результат хранится в памяти.

Синтаксис

byte[] readAllBytes() throws IOException

Пример

Давайте прочитаем все байты из строки "abcde", преобразованной в поток ввода:

import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.IOException; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { String str = "abcde"; InputStream is = new ByteArrayInputStream(str.getBytes()); byte[] res = is.readAllBytes(); System.out.println(Arrays.toString(res)); } }

Результат выполнения кода:

[97, 98, 99, 100, 101]

Пример

Давайте прочитаем байты и преобразуем их обратно в строку:

import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { String str = "12345"; InputStream is = new ByteArrayInputStream(str.getBytes()); byte[] res = is.readAllBytes(); System.out.println(new String(res)); } }

Результат выполнения кода:

"12345"

Пример

Давайте проверим, что после полного чтения повторный вызов метода вернет пустой массив:

import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.IOException; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { String str = "abcde"; InputStream is = new ByteArrayInputStream(str.getBytes()); byte[] first = is.readAllBytes(); byte[] second = is.readAllBytes(); System.out.println(Arrays.toString(first)); System.out.println(Arrays.toString(second)); } }

Результат выполнения кода:

[97, 98, 99, 100, 101] []

Смотрите также

  • класс InputStream,
    который представляет входной поток байтов
  • метод read,
    который читает один байт из потока
  • метод readNBytes,
    который читает заданное количество байтов
  • метод transferTo,
    который передает байты в выходной поток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить