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).

Цікаві статті...