Java FileInputStream (cu exemple)

În acest tutorial, vom afla despre Java FileInputStream și metodele sale cu ajutorul unor exemple.

FileInputStreamClasa a java.iopachetului poate fi utilizat pentru a citi date (în octeți) din fișiere.

Extinde InputStreamclasa abstractă.

Înainte de a afla FileInputStream, asigurați-vă că știți despre fișierele Java.

Creați un FileInputStream

Pentru a crea un flux de intrare a fișierului, trebuie mai java.io.FileInputStreamîntâi să importăm pachetul. Odată ce am importat pachetul, iată cum putem crea un flux de intrare de fișiere în Java.

1. Folosind calea către fișier

 FileInputStream input = new FileInputStream(stringPath); 

Aici, am creat un flux de intrare care va fi legat de fișierul specificat de cale.

2. Utilizarea unui obiect al fișierului

 FileInputStream input = new FileInputStream(File fileObject); 

Aici, am creat un flux de intrare care va fi legat de fișierul specificat de fileObject.

Metode de FileInputStream

FileInputStreamClasa oferă implementări pentru diferite metode prezintă în InputStreamclasă.

read () Metodă

  • read() - citește un singur octet din fișier
  • read(byte() array) - citește octeții din fișier și stochează în matricea specificată
  • read(byte() array, int start, int length) - citește numărul de octeți egal cu lungimea din fișier și stochează în matricea specificată începând de la începutul poziției

Să presupunem că avem un fișier numit input.txt cu următorul conținut.

 This is a line of text inside the file. 

Să încercăm să citim acest fișier folosind 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(); ) ) ) 

Ieșire

 Date din fișier: Aceasta este o linie de text din interiorul fișierului. 

În exemplul de mai sus, am creat un flux de intrare a fișierului denumit input. Fluxul de intrare este legat de fișierul input.txt .

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

Pentru a citi date din fișier, am folosit read()metoda în bucla while.

disponibil () Metodă

Pentru a obține numărul de octeți disponibili, putem folosi available()metoda. De exemplu,

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

Ieșire

 Octiți disponibili la început: 39 Octiți disponibili la sfârșit: 36 

În exemplul de mai sus,

  1. Mai întâi folosim available()metoda pentru a verifica numărul de octeți disponibili în fluxul de intrare a fișierului.
  2. Apoi am folosit read()metoda de 3 ori pentru a citi 3 octeți din fluxul de intrare a fișierului.
  3. Acum, după ce am citit octeții, am verificat din nou octeții disponibili. De această dată, octeții disponibili au scăzut cu 3.

skip () Metodă

Pentru a elimina și a omite numărul specificat de octeți, putem folosi skip()metoda. De exemplu,

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

Ieșire

 Flux de intrare după omiterea a 5 octeți: este o linie de text din fișier. 

În exemplul de mai sus, am folosit skip()metoda pentru a sări peste 5 octeți de date din fluxul de intrare a fișierului. Prin urmare, octeții care reprezintă textul „Acesta” nu sunt citiți din fluxul de intrare.

close () Metoda

Pentru a închide fluxul de intrare a fișierului, putem folosi close()metoda. Odată close()apelată metoda, nu putem folosi fluxul de intrare pentru a citi date.

În toate exemplele de mai sus, am folosit close()metoda pentru a închide fluxul de intrare a fișierului.

Alte metode ale FileInputStream

Metode Descrieri
finalize() asigură apelarea close()metodei
getChannel() returnează obiectul FileChannelasociat fluxului de intrare
getFD() returnează descriptorul de fișier asociat cu fluxul de intrare
mark() marcați poziția în fluxul de intrare până la care au fost citite datele
reset() returnează controlul la punctul din fluxul de intrare unde a fost setată marca

Pentru a afla mai multe, vizitați Java FileInputStream (documentație oficială Java).

Articole interesante...