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

Класс InputStream

Класс InputStream - это абстрактный класс, который представляет собой суперкласс для всех классов, считывающих байты из источника (файла, сети, памяти). Он не может быть создан напрямую, но определяет основные методы для работы с входными потоками. В параметрах методов чтения обычно передается буфер (массив байтов) и смещение, а также количество байтов для чтения.

Синтаксис

public abstract class InputStream implements Closeable

Основные методы

Класс InputStream предоставляет следующие ключевые методы:

int read() int read(byte[] b) int read(byte[] b, int off, int len) byte[] readAllBytes() byte[] readNBytes(int len) long skip(long n) int available() void close() long transferTo(OutputStream out)

Пример

Давайте рассмотрим пример чтения байтов из массива с помощью класса ByteArrayInputStream, который является наследником InputStream:

import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.IOException; public class Main { public static void main(String[] args) { byte[] data = {97, 98, 99, 100, 101}; try (InputStream is = new ByteArrayInputStream(data)) { int byteData; while ((byteData = is.read()) != -1) { System.out.print((char) byteData); } } catch (IOException e) { e.printStackTrace(); } } }

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

"abcde"

Пример

Давайте прочитаем все байты из потока с помощью метода readAllBytes:

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) { byte[] data = {49, 50, 51, 52, 53}; try (InputStream is = new ByteArrayInputStream(data)) { byte[] res = is.readAllBytes(); System.out.println(Arrays.toString(res)); } catch (IOException e) { e.printStackTrace(); } } }

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

[49, 50, 51, 52, 53]

Пример

Давайте прочитаем определенное количество байтов с помощью метода readNBytes:

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) { byte[] data = {97, 98, 99, 100, 101}; try (InputStream is = new ByteArrayInputStream(data)) { byte[] res = is.readNBytes(3); System.out.println(Arrays.toString(res)); } catch (IOException e) { e.printStackTrace(); } } }

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

[97, 98, 99]

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

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