В този урок ще научим за класа 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).