I denne vejledning lærer vi om Java FileReader og dens metoder ved hjælp af eksempler.
Den FileReader
klasse af java.io
pakken kan bruges til at læse data (i tegn) fra filer.
Det udvider InputSreamReader
klassen.
Før du lærer om FileReader
, skal du sørge for at kende til Java-filen.
Opret en FileReader
For at oprette en fillæser skal vi først importere java.io.FileReader
pakken. Når vi først har importeret pakken, kan du oprette fillæser her.
1. Brug af filnavnet
FileReader input = new FileReader(String name);
Her har vi oprettet en fillæser, der linkes til den fil, der er angivet med navnet.
2. Brug af et objekt i filen
FileReader input = new FileReader(File fileObj);
Her har vi oprettet en fillæser, der linkes til den fil, der er angivet af filens objekt.
I ovenstående eksempel opbevares dataene i filen ved hjælp af en standardkodning.
Men da Java 11 kan vi også angive typen af tegnkodning ( UTF-8 eller UTF-16 ) i filen.
FileReader input = new FileReader(String file, Charset cs);
Her har vi brugt Charset
klassen til at specificere tegnkodningen af fillæseren.
Metoder til FileReader
Den FileReader
klasse giver implementeringer for forskellige metoder præsentere i Reader
klasse.
læs () Metode
read()
- læser et enkelt tegn fra læserenread(char() array)
- læser tegnene fra læseren og gemmer i den angivne matrixread(char() array, int start, int length)
- læser antallet af tegn svarende til længden fra læseren og gemmer i det angivne array startende fra positionens start
Antag for eksempel, at vi har en fil med navnet input.txt med følgende indhold.
This is a line of text inside the file.
Lad os prøve at læse filen ved hjælp af 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(); ) ) )
Produktion
Data i filen: Dette er en tekstlinje inde i filen.
I ovenstående eksempel har vi oprettet en fillæser med navnet input. Fillæseren er knyttet til filen input.txt .
FileInputStream input = new FileInputStream("input.txt");
For at læse data fra filen har vi brugt read()
metoden.
getEncoding () metode
Den getEncoding()
metode kan bruges til at få den type kodning, der bruges til at gemme data i filen. For eksempel,
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(); ) ) )
Produktion
Tegnkodning af input1: Cp1252 Tegnkodning af input2: UTF8
I ovenstående eksempel har vi oprettet 2 fillæser med navnet input1 og input2.
- input1 angiver ikke tegnkodningen. Derfor
getEncoding()
returnerer metoden standardtegnkodningen. - input2 angiver tegnkodning, UTF8 . Derfor
getEncoding()
returnerer metoden den angivne tegnkodning.
Bemærk : Vi har brugt Charset.forName()
metoden til at specificere typen af tegnkodning. For at lære mere, besøg Java Charset (officiel Java-dokumentation).
close () Metode
For at lukke fillæseren kan vi bruge close()
metoden. Når close()
metoden er kaldt, kan vi ikke bruge læseren til at læse dataene.
Andre metoder til FileReader
Metode | Beskrivelse |
---|---|
ready() | kontrollerer, om fillæseren er klar til at blive læst |
mark() | markere positionen i fillæser, op til hvilken data er læst |
reset() | returnerer kontrollen til det punkt i læseren, hvor mærket blev sat |
For at lære mere, besøg Java FileReader (officiel Java-dokumentation).