Java FileInputStream (példákkal)

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ól
  • read(byte() array) - beolvassa a bájtokat a fájlból és tárolja a megadott tömbben
  • read(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

  1. Először a available()módszerrel ellenőrizzük a rendelkezésre álló bájtok számát a fájl bemeneti adatfolyamban.
  2. Ezután read()háromszor használtuk a módszert, hogy 3 bájtot olvassunk a fájl bemeneti adatfolyamából.
  3. 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ó).

érdekes cikkek...