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








