Java FileReader-klasse
Java FileReader-klasse
In deze zelfstudie leren we over Java FileReader en zijn methoden aan de hand van voorbeelden.
De FileReader
klasse van de java.io
pakket kan worden gebruikt om gegevens (in tekens) uit bestanden te lezen.
Het verlengt de InputSreamReader
klasse.
Voordat u meer te weten komt over FileReader
, zorg ervoor dat u op de hoogte bent van het Java-bestand.
Maak een FileReader
Om een bestandslezer te maken, moeten we de java.io.FileReader
. importeren pakket eerst. Nadat we het pakket hebben geïmporteerd, kunnen we als volgt de bestandslezer maken.
FileReader input = new FileReader(String name);
Hier hebben we een bestandslezer gemaakt die wordt gekoppeld aan het bestand dat is opgegeven met de naam .
FileReader input = new FileReader(File fileObj);
Hier hebben we een bestandslezer gemaakt die wordt gekoppeld aan het bestand dat is opgegeven door het object van het bestand.
In het bovenstaande voorbeeld worden de gegevens in het bestand opgeslagen met een standaard tekencodering.
Sinds Java 11 kunnen we echter het type tekencodering specificeren (UTF-8 of UTF-16 ) ook in het bestand.
FileReader input = new FileReader(String file, Charset cs);
Hier hebben we de Charset
. gebruikt class om de tekencodering van de bestandslezer te specificeren.
Methoden van FileReader
De FileReader
class biedt implementaties voor verschillende methoden die aanwezig zijn in de Reader
klasse.
read()-methode
read()
- leest een enkel karakter van de lezerread(char[] array)
- leest de tekens uit de lezer en slaat ze op in de opgegeven arrayread(char[] array, int start, int length)
- leest het aantal tekens gelijk aan lengte van de lezer en slaat op in de opgegeven array vanaf de positie start
Stel dat we bijvoorbeeld 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
Data in the file: This is a line of text inside the file.
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()
. gebruikt methode.
Opmerking :Het bestand input.txt moet aanwezig zijn in de huidige werkmap.
getEncoding()-methode
De getEncoding()
methode kan worden gebruikt om het type codering te krijgen 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
The character encoding of input1: Cp1252 The character encoding of input2: UTF8
In het bovenstaande voorbeeld hebben we 2 bestandslezers gemaakt met de naam input1 en invoer2 .
- invoer1 specificeert niet de tekencodering. Vandaar de
getEncoding()
methode retourneert de standaard tekencodering. - invoer2 specificeert de tekencodering, UTF8 . Vandaar de
getEncoding()
methode retourneert de opgegeven tekencodering.
Opmerking :We hebben de Charset.forName()
. gebruikt methode om het type tekencodering op te geven. Ga voor meer informatie naar Java Charset (officiële Java-documentatie).
close()-methode
Om de bestandslezer te sluiten, kunnen we de close()
. gebruiken methode. Zodra de close()
methode wordt aangeroepen, kunnen we de lezer niet gebruiken om de gegevens te lezen.
Andere methoden van FileReader
Methode | Beschrijving |
---|---|
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 de besturing terug naar het punt in de lezer waar de markering werd geplaatst |
Ga voor meer informatie naar Java FileReader (officiële Java-documentatie).
Java