Java InputStream (z przykładem)

W tym samouczku dowiemy się o klasie Java InputStream i jej metodach na przykładzie.

InputStreamKlasa java.iopakietu jest abstrakcyjną nadklasą który reprezentuje wejściowego strumienia bajtów.

Ponieważ InputStreamjest to klasa abstrakcyjna, sama w sobie nie jest przydatna. Jednak jego podklasy mogą być używane do odczytu danych.

Podklasy InputStream

Aby skorzystać z funkcjonalności programu InputStream, możemy skorzystać z jego podklas. Niektórzy z nich są:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

Dowiemy się o wszystkich tych podklasach w następnym samouczku.

Utwórz InputStream

Aby stworzyć InputStream, musimy najpierw zaimportować java.io.InputStreampakiet. Po zaimportowaniu pakietu, oto jak możemy utworzyć strumień wejściowy.

 // Creates an InputStream InputStream object1 = new FileInputStream(); 

Tutaj utworzyliśmy strumień wejściowy przy użyciu FileInputStream. To dlatego, że InputStreamjest to klasa abstrakcyjna. Dlatego nie możemy stworzyć przedmiotu InputStream.

Uwaga : możemy również utworzyć strumień wejściowy z innych podklas InputStream.

Metody InputStream

InputStreamKlasa przewiduje różne metody, które są realizowane przez jej podklasy. Oto niektóre z powszechnie używanych metod:

  • read() - odczytuje jeden bajt danych ze strumienia wejściowego
  • read(byte() array) - odczytuje bajty ze strumienia i przechowuje w określonej tablicy
  • available() - zwraca liczbę bajtów dostępnych w strumieniu wejściowym
  • mark() - oznacza pozycję w strumieniu wejściowym, do której zostały odczytane dane
  • reset() - zwraca sterowanie do punktu w strumieniu, w którym został ustawiony znacznik
  • markSupported()- sprawdza, czy w strumieniu jest obsługiwana metoda mark()ireset()
  • skips() - pomija i odrzuca określoną liczbę bajtów ze strumienia wejściowego
  • close() - zamyka strumień wejściowy

Przykład: InputStream przy użyciu FileInputStream

Oto, jak możemy zaimplementować InputStreamza pomocą FileInputStreamklasy.

Załóżmy, że mamy plik o nazwie input.txt z następującą zawartością.

 This is a line of text inside the file. 

Spróbujmy odczytać ten plik przy użyciu FileInputStream(podklasy 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(); ) ) ) 

Wynik

 Available bytes in the file: 35 Data read from the file: This is a line of text inside the file 

W powyższym przykładzie utworzyliśmy strumień wejściowy przy użyciu FileInputStreamklasy. Strumień wejściowy jest powiązany z plikiem input.txt .

 InputStream input = new FileInputStream("input.txt"); 

Aby odczytać dane z pliku input.txt , zaimplementowaliśmy te dwie metody.

 input.read(array); // to read data from the input stream input.close(); // to close the input stream 

Aby dowiedzieć się więcej, odwiedź stronę Java InputStream (oficjalna dokumentacja Java).

Interesujące artykuły...