Ebben az oktatóanyagban egy példa segítségével megismerhetjük a Java InputStream osztályt és annak módszereit.
A csomag InputStream
osztálya java.io
egy absztrakt szuperosztály, amely a bájtok bemeneti áramát ábrázolja.
Mivel InputStream
ez egy absztrakt osztály, önmagában nem hasznos. Alosztályai azonban felhasználhatók adatok olvasására.
Az InputStream alosztályai
A funkcionalitás kihasználása érdekében InputStream
használhatjuk annak alosztályait. Néhány közülük:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
A következő oktatóanyagban megismerjük ezeket az alosztályokat.
Hozzon létre egy InputStream-et
Az InputStream létrehozásához java.io.InputStream
először importálnunk kell a csomagot. A csomag importálása után a következőképpen hozhatjuk létre a bemeneti adatfolyamot.
// Creates an InputStream InputStream object1 = new FileInputStream();
Itt létrehoztunk egy bemeneti adatfolyamot a FileInputStream
. Ez azért van, mert InputStream
egy elvont osztály. Ezért nem hozhatunk létre objektumot InputStream
.
Megjegyzés : A. Más alosztályaiból is létrehozhatunk bemeneti adatfolyamot InputStream
.
Az InputStream módszerei
Az InputStream
osztály különböző módszereket kínál, amelyeket az alosztályai valósítanak meg. Íme néhány a gyakran használt módszerek közül:
read()
- beolvassa az adatok egy bájtját a bemeneti adatfolyambólread(byte() array)
- beolvassa a bájtokat az adatfolyamból és tárolja a megadott tömbbenavailable()
- a bemeneti adatfolyamban elérhető bájtok számát adja visszamark()
- jelzi a bemeneti adatfolyam azon pozícióját, amelyre az adatokat beolvastákreset()
- visszaadja a vezérlést a patak azon pontjára, ahol a jelölést beállítottákmarkSupported()
- ellenőrzi, hogy amark()
ésreset()
metódus támogatott-e az adatfolyambanskips()
- kihagyja és eldobja a megadott számú bájtot a bemeneti adatfolyambólclose()
- bezárja a bemeneti adatfolyamot
Példa: InputStream a FileInputStream használatával
Így valósíthatjuk InputStream
meg az FileInputStream
osztály használatát.
Tegyük fel, hogy van egy input.txt nevű fájlunk a következő tartalommal.
This is a line of text inside the file.
Próbáljuk meg elolvasni ezt a fájlt a FileInputStream
(alosztályának InputStream
) használatával.
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(); ) ) )
Kimenet
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
A fenti példában létrehoztunk egy bemeneti adatfolyamot az FileInputStream
osztály felhasználásával. A bemeneti adatfolyam az input.txt fájlhoz van kapcsolva .
InputStream input = new FileInputStream("input.txt");
Az input.txt fájl adatainak kiolvasásához ezt a két módszert valósítottuk meg.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
További információkért látogasson el a Java InputStream oldalra (hivatalos Java dokumentáció).