Java FileInputStream (met voorbeelden)

In deze tutorial zullen we met behulp van voorbeelden leren over Java FileInputStream en zijn methoden.

De FileInputStreamklasse van het java.iopakket kan worden gebruikt om gegevens (in bytes) uit bestanden te lezen.

Het breidt de InputStreamabstracte klasse uit.

Voordat we iets leren FileInputStream, moet u weten wat Java-bestanden zijn.

Maak een FileInputStream

Om een ​​bestandsinvoerstroom te maken, moeten we eerst het java.io.FileInputStreampakket importeren . Zodra we het pakket hebben geïmporteerd, kunnen we als volgt een bestandsinvoerstroom in Java maken.

1. Gebruik het pad naar het bestand

 FileInputStream input = new FileInputStream(stringPath); 

Hier hebben we een invoerstroom gemaakt die zal worden gekoppeld aan het bestand dat wordt gespecificeerd door het pad.

2. Gebruik een object van het bestand

 FileInputStream input = new FileInputStream(File fileObject); 

Hier hebben we een invoerstroom gemaakt die zal worden gekoppeld aan het bestand gespecificeerd door fileObject.

Methoden van FileInputStream

De FileInputStreamklasse biedt implementaties voor verschillende methoden die in de InputStreamklasse aanwezig zijn.

read () Methode

  • read() - leest een enkele byte uit het bestand
  • read(byte() array) - leest de bytes uit het bestand en slaat het op in de opgegeven array
  • read(byte() array, int start, int length) - leest het aantal bytes dat gelijk is aan de lengte uit het bestand en slaat het op in de opgegeven array vanaf het begin van de positie

Stel dat we een bestand hebben met de naam input.txt met de volgende inhoud.

 This is a line of text inside the file. 

Laten we proberen dit bestand te lezen met 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(); ) ) ) 

Uitvoer

 Gegevens in het bestand: dit is een regel tekst in het bestand. 

In het bovenstaande voorbeeld hebben we een bestandsinvoerstroom gemaakt met de naam input. De invoerstroom is gekoppeld aan het bestand input.txt .

 FileInputStream input = new FileInputStream("input.txt"); 

Om gegevens uit het bestand te lezen, hebben we de read()methode binnen de while-lus gebruikt.

available () Methode

Om het aantal beschikbare bytes te krijgen, kunnen we de available()methode gebruiken. Bijvoorbeeld,

 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(); ) ) ) 

Uitvoer

 Beschikbare bytes aan het begin: 39 Beschikbare bytes aan het einde: 36 

In het bovenstaande voorbeeld

  1. We gebruiken eerst de available()methode om het aantal beschikbare bytes in de bestandsinvoerstroom te controleren.
  2. We hebben de read()methode vervolgens 3 keer gebruikt om 3 bytes uit de bestandsinvoerstroom te lezen.
  3. Nu, na het lezen van de bytes, hebben we opnieuw de beschikbare bytes gecontroleerd. Dit keer zijn de beschikbare bytes met 3 afgenomen.

skip () methode

Om het opgegeven aantal bytes te verwijderen en over te slaan, kunnen we de skip()methode gebruiken. Bijvoorbeeld,

 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(); ) ) ) 

Uitvoer

 Invoerstroom na het overslaan van 5 bytes: is een regel tekst in het bestand. 

In het bovenstaande voorbeeld hebben we de skip()methode gebruikt om 5 bytes aan gegevens uit de bestandsinvoerstroom over te slaan. Daarom worden de bytes die de tekst "This" vertegenwoordigen, niet gelezen uit de invoerstroom.

close () Methode

Om de bestandsinvoerstroom te sluiten, kunnen we de close()methode gebruiken. Als de close()methode eenmaal is aangeroepen, kunnen we de invoerstroom niet gebruiken om gegevens te lezen.

In alle bovenstaande voorbeelden hebben we de close()methode gebruikt om de bestandsinvoerstroom te sluiten.

Andere methoden van FileInputStream

Methoden Beschrijvingen
finalize() zorgt ervoor dat de close()methode wordt aangeroepen
getChannel() geeft het object terug dat is FileChannelgekoppeld aan de invoerstroom
getFD() geeft de bestandsdescriptor terug die is gekoppeld aan de invoerstroom
mark() markeer de positie in de invoerstroom tot waar de gegevens zijn gelezen
reset() geeft het besturingselement terug naar het punt in de invoerstroom waar de markering was ingesteld

Bezoek voor meer informatie Java FileInputStream (officiële Java-documentatie).

Interessante artikelen...