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

Метод readNBytes

Метод readNBytes класса InputStream читает указанное количество байтов из входного потока и возвращает их в виде массива байтов. В первый параметр мы передаем количество байтов, которое нужно прочитать. Второй параметр необязательный - это смещение в массиве, с которого начнется запись прочитанных байтов. Третий параметр также необязательный - это максимальное количество байтов для чтения. Метод блокируется до тех пор, пока не прочитает указанное количество байтов, не достигнет конца потока или не возникнет исключение.

Синтаксис

inputStream.readNBytes(len) inputStream.readNBytes(b, off, len)

Пример

Давайте прочитаем 3 байта из потока ByteArrayInputStream и выведем их на экран:

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

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

"abc"

Пример

Давайте прочитаем 3 байта, но запишем их в массив со смещением 2:

import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; public class Main { public static void main(String[] args) throws IOException { byte[] data = "12345".getBytes(); InputStream is = new ByteArrayInputStream(data); byte[] buffer = new byte[10]; int count = is.readNBytes(buffer, 2, 3); System.out.println("count: " + count); System.out.println(new String(buffer)); is.close(); } }

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

"count: 3" " 123"

Пример

Давайте попробуем прочитать больше байтов, чем есть в потоке. Метод вернет только доступные байты:

import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; public class Main { public static void main(String[] args) throws IOException { byte[] data = "abc".getBytes(); InputStream is = new ByteArrayInputStream(data); byte[] res = is.readNBytes(10); System.out.println("length: " + res.length); System.out.println(new String(res)); is.close(); } }

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

"length: 3" "abc"

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

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