Ebben az oktatóanyagban példák segítségével megismerhetjük a Java FileInputStream-et és annak módszereit.
A csomag FileInputStreamosztálya java.iohasználható adatok (bájtokban) fájlokból történő olvasására.
Kiterjeszti az InputStreamabsztrakt osztályt.

Mielőtt megtudnánk FileInputStream, feltétlenül ismerje meg a Java fájlokat.
Hozzon létre egy FileInputStream fájlt
A fájlbeviteli adatfolyam létrehozásához java.io.FileInputStreamelőször importálnunk kell a csomagot. Miután importáltuk a csomagot, a következőképpen hozhatunk létre fájlbemenetet a Java-ban.
1. A fájl elérési útjának használata
 FileInputStream input = new FileInputStream(stringPath); 
Itt létrehoztunk egy bemeneti adatfolyamot, amely az útvonal által megadott fájlhoz fog kapcsolódni.
2. A fájl objektumának használata
 FileInputStream input = new FileInputStream(File fileObject); 
Itt létrehoztunk egy bemeneti adatfolyamot, amely összekapcsolódik a fileObject.
A FileInputStream módszerei
Az FileInputStreamosztály megvalósításokat biztosít az InputStreamosztályban jelen lévő különböző módszerek számára .
read () módszer
read()- egyetlen bájtot olvas ki a fájlbólread(byte() array)- beolvassa a bájtokat a fájlból és tárolja a megadott tömbbenread(byte() array, int start, int length)- beolvassa a fájlból a hosszúsággal megegyező bájtok számát, és a pozíció kezdetétől kezdve a megadott tömbben tárolja
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.
 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 
Kimenet
Adatok a fájlban: Ez egy szövegsor a fájl belsejében.
A fenti példában létrehoztunk egy bemeneti fájlnevet. A bemeneti adatfolyam az input.txt fájlhoz van kapcsolva .
 FileInputStream input = new FileInputStream("input.txt"); 
A fájl adatainak kiolvasásához read()a while cikluson belül használtuk a módszert.
elérhető () módszer
Az elérhető bájtok számának megszerzéséhez használhatjuk a available()módszert. Például,
 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 
Kimenet
Elérhető bájtok az elején: 39 Elérhető bájtok a végén: 36
A fenti példában
- Először a 
available()módszerrel ellenőrizzük a rendelkezésre álló bájtok számát a fájl bemeneti adatfolyamban. - Ezután 
read()háromszor használtuk a módszert, hogy 3 bájtot olvassunk a fájl bemeneti adatfolyamából. - A bájtok elolvasása után ismét ellenőrizzük a rendelkezésre álló bájtokat. Ezúttal a rendelkezésre álló bájtok 3-mal csökkentek.
 
skip () módszer
A megadott számú bájt elvetéséhez és kihagyásához használhatjuk a skip()módszert. Például,
 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 
Kimenet
Bemeneti adatfolyam 5 bájt kihagyása után: egy szövegsor a fájl belsejében.
A fenti példában azt a skip()módszert alkalmaztuk, hogy 5 bájt adatot hagyjunk ki a fájlbemeneti adatfolyamból. Ezért az "Ez" szöveget képviselő bájtok nem olvashatók be a bemeneti adatfolyamból.
bezár () módszer
A fájlbeviteli adatfolyam bezárásához használhatjuk a close()módszert. A close()módszer meghívása után nem használhatjuk a bemeneti adatfolyamot adatok olvasására.
A fenti példákban close()a fájlt beviteli adatfolyam bezárására használtuk a módszert.
A FileInputStream egyéb módszerei
| Mód | Leírások | 
|---|---|
finalize()  |  biztosítja a close()módszer meghívását |  
getChannel()  |  FileChannela bemeneti adatfolyamhoz társított objektumot adja vissza |  
getFD()  |  visszaadja a bemeneti adatfolyamhoz társított fájlleírót | 
mark()  |  jelölje be a bemeneti adatfolyamban azt a helyet, amelyre az adatokat beolvasták | 
reset()  |  visszaadja a vezérlést a bemeneti adatfolyam azon pontjára, ahol a jelölést beállították | 
További információkért keresse fel a Java FileInputStream webhelyet (hivatalos Java dokumentáció).








