В этом руководстве мы узнаем о классе Java InputStream и его методах с помощью примера.
InputStream
Класс java.io
пакета является абстрактный суперкласс , который представляет входной поток байтов.
Поскольку InputStream
это абстрактный класс, он бесполезен сам по себе. Однако его подклассы можно использовать для чтения данных.
Подклассы InputStream
Чтобы использовать функциональность InputStream
, мы можем использовать его подклассы. Некоторые из них:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
Мы узнаем обо всех этих подклассах в следующем уроке.
Создать InputStream
Чтобы создать InputStream, мы должны java.io.InputStream
сначала импортировать пакет. После импорта пакета вот как мы можем создать входной поток.
// Creates an InputStream InputStream object1 = new FileInputStream();
Здесь мы создали входной поток, используя FileInputStream
. Потому что InputStream
это абстрактный класс. Следовательно, мы не можем создать объект InputStream
.
Примечание : мы также можем создать входной поток из других подклассов InputStream
.
Методы InputStream
InputStream
Класс предоставляет различные методы, которые реализуются его подклассов. Вот некоторые из наиболее часто используемых методов:
read()
- читает один байт данных из входного потокаread(byte() array)
- читает байты из потока и сохраняет в указанном массивеavailable()
- возвращает количество байтов, доступных во входном потокеmark()
- отмечает позицию во входном потоке, до которой были прочитаны данныеreset()
- возвращает управление в точку в потоке, где была поставлена отметкаmarkSupported()
- проверяет , является лиmark()
иreset()
метод поддерживается в потокеskips()
- пропускает и отбрасывает указанное количество байтов из входного потокаclose()
- закрывает входной поток
Пример: InputStream с использованием FileInputStream
Вот как мы можем реализовать InputStream
этот FileInputStream
класс.
Предположим, у нас есть файл с именем input.txt со следующим содержимым.
This is a line of text inside the file.
Попробуем прочитать этот файл с помощью FileInputStream
(подкласс InputStream
).
import java.io.FileInputStream; import java.io.InputStream; public class Main ( public static void main(String args()) ( byte() array = new byte(100); try ( InputStream input = new FileInputStream("input.txt"); System.out.println("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Вывод
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
В приведенном выше примере мы создали входной поток с помощью FileInputStream
класса. Входной поток связан с файлом input.txt .
InputStream input = new FileInputStream("input.txt");
Для чтения данных из файла input.txt мы реализовали эти два метода.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
Чтобы узнать больше, посетите Java InputStream (официальная документация по Java).