Java InputStream (с примером)

В этом руководстве мы узнаем о классе 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).

Интересные статьи...