У цьому посібнику ми дізнаємося про клас 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).