In deze tutorial leren we met behulp van voorbeelden over Java FileReader en zijn methoden.
De FileReader
klasse van het java.io
pakket kan worden gebruikt om gegevens (in tekens) uit bestanden te lezen.
Het breidt de InputSreamReader
klas uit.
Voordat u iets leert FileReader
, moet u het Java-bestand kennen.
Maak een FileReader
Om een bestandslezer te maken, moeten we eerst het java.io.FileReader
pakket importeren . Zodra we het pakket hebben geïmporteerd, kunnen we als volgt de bestandslezer maken.
1. Gebruik de naam van het bestand
FileReader input = new FileReader(String name);
Hier hebben we een bestandslezer gemaakt die zal worden gekoppeld aan het bestand met de naam.
2. Gebruik een object van het bestand
FileReader input = new FileReader(File fileObj);
Hier hebben we een bestandslezer gemaakt die zal worden gekoppeld aan het bestand dat wordt gespecificeerd door het object van het bestand.
In het bovenstaande voorbeeld worden de gegevens in het bestand opgeslagen met behulp van een standaard tekencodering.
Sinds Java 11 kunnen we echter ook het type tekencodering ( UTF-8 of UTF-16 ) in het bestand specificeren .
FileReader input = new FileReader(String file, Charset cs);
Hier hebben we de Charset
klasse gebruikt om de tekencodering van de bestandslezer te specificeren.
Methoden van FileReader
De FileReader
klasse biedt implementaties voor verschillende methoden die in de Reader
klasse aanwezig zijn.
read () Methode
read()
- leest een enkel teken uit de lezerread(char() array)
- leest de karakters van de lezer en slaat op in de gespecificeerde arrayread(char() array, int start, int length)
- leest het aantal tekens dat gelijk is aan de lengte van de lezer 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 het bestand te lezen met FileReader
.
import java.io.FileReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a reader using the FileReader FileReader input = new FileReader("input.txt"); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader 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 bestandslezer gemaakt met de naam input. De bestandslezer 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 gebruikt.
getEncoding () - methode
De getEncoding()
methode kan worden gebruikt om het type codering op te halen dat wordt gebruikt om gegevens in het bestand op te slaan. Bijvoorbeeld,
import java.io.FileReader; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( try ( // Creates a FileReader with default encoding FileReader input1 = new FileReader("input.txt"); // Creates a FileReader specifying the encoding FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); // Returns the character encoding of the file reader System.out.println("Character encoding of input1: " + input1.getEncoding()); System.out.println("Character encoding of input2: " + input2.getEncoding()); // Closes the reader input1.close(); input2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Uitvoer
De tekencodering van input1: Cp1252 De tekencodering van input2: UTF8
In het bovenstaande voorbeeld hebben we 2 bestandslezers gemaakt met de naam input1 en input2.
- input1 specificeert niet de tekencodering. Daarom
getEncoding()
retourneert de methode de standaard tekencodering. - input2 specificeert de tekencodering, UTF8 . Daarom
getEncoding()
retourneert de methode de opgegeven tekencodering.
Opmerking : we hebben de Charset.forName()
methode gebruikt om het type tekencodering te specificeren. Voor meer informatie, bezoek Java Charset (officiële Java-documentatie).
close () Methode
Om de bestandslezer te sluiten, kunnen we de close()
methode gebruiken. Als de close()
methode eenmaal is aangeroepen, kunnen we de lezer niet gebruiken om de gegevens te lezen.
Andere methoden van FileReader
Methode | Omschrijving |
---|---|
ready() | controleert of de bestandslezer klaar is om gelezen te worden |
mark() | markeer de positie in de bestandslezer tot waar de gegevens zijn gelezen |
reset() | geeft het besturingselement terug naar het punt in de lezer waar het merkteken werd geplaatst |
Ga voor meer informatie naar Java FileReader (officiële Java-documentatie).