Ebben az oktatóanyagban példák segítségével megismerhetjük a Java FileInputStream-et és annak módszereit.
A csomag FileInputStream
osztálya java.io
használható adatok (bájtokban) fájlokból történő olvasására.
Kiterjeszti az InputStream
absztrakt 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.FileInputStream
elő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 FileInputStream
osztály megvalósításokat biztosít az InputStream
osztá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() | FileChannel a 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ó).