W tym samouczku dowiemy się o klasie Java InputStream i jej metodach na przykładzie.
InputStream
Klasa java.io
pakietu jest abstrakcyjną nadklasą który reprezentuje wejściowego strumienia bajtów.
Ponieważ InputStream
jest 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.InputStream
pakiet. 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 InputStream
jest 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
InputStream
Klasa 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ściowegoread(byte() array)
- odczytuje bajty ze strumienia i przechowuje w określonej tablicyavailable()
- zwraca liczbę bajtów dostępnych w strumieniu wejściowymmark()
- oznacza pozycję w strumieniu wejściowym, do której zostały odczytane danereset()
- zwraca sterowanie do punktu w strumieniu, w którym został ustawiony znacznikmarkSupported()
- sprawdza, czy w strumieniu jest obsługiwana metodamark()
ireset()
skips()
- pomija i odrzuca określoną liczbę bajtów ze strumienia wejściowegoclose()
- zamyka strumień wejściowy
Przykład: InputStream przy użyciu FileInputStream
Oto, jak możemy zaimplementować InputStream
za pomocą FileInputStream
klasy.
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 FileInputStream
klasy. 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).