În acest tutorial, vom afla despre Java FileInputStream și metodele sale cu ajutorul unor exemple.
FileInputStream
Clasa a java.io
pachetului poate fi utilizat pentru a citi date (în octeți) din fișiere.
Extinde InputStream
clasa 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
FileInputStream
Clasa oferă implementări pentru diferite metode prezintă în InputStream
clasă.
read () Metodă
read()
- citește un singur octet din fișierread(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,
- Mai întâi folosim
available()
metoda pentru a verifica numărul de octeți disponibili în fluxul de intrare a fișierului. - Apoi am folosit
read()
metoda de 3 ori pentru a citi 3 octeți din fluxul de intrare a fișierului. - 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 FileChannel asociat 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).