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

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