I denne opplæringen vil vi lære om Java FileReader og metodene ved hjelp av eksempler.
Den FileReader
klassen av java.io
pakken kan brukes til å lese data (i tegn) fra filer.
Det utvider InputSreamReader
klassen.
Før du lærer om FileReader
, må du sørge for at du vet om Java-filen.
Lag en FileReader
For å opprette en filleser må vi først importere java.io.FileReader
pakken. Når vi har importert pakken, kan du lage filleseren her.
1. Bruke navnet på filen
FileReader input = new FileReader(String name);
Her har vi opprettet en filleser som vil bli koblet til filen spesifisert av navnet.
2. Bruke et objekt av filen
FileReader input = new FileReader(File fileObj);
Her har vi opprettet en filleser som vil bli koblet til filen spesifisert av objektet til filen.
I eksemplet ovenfor lagres dataene i filen ved hjelp av standard tegnkoding.
Siden Java 11 kan vi imidlertid også spesifisere typen koding ( UTF-8 eller UTF-16 ) i filen.
FileReader input = new FileReader(String file, Charset cs);
Her har vi brukt Charset
klassen til å spesifisere tegnkodingen til filleseren.
Metoder for FileReader
Den FileReader
klasse gir implementeringer for forskjellige metoder for å medføre i Reader
klassen.
les () Metode
read()
- leser et enkelt tegn fra leserenread(char() array)
- leser tegnene fra leseren og lagrer i den angitte matrisenread(char() array, int start, int length)
- leser antall tegn som er like lange fra leseren og lagrer i den angitte matrisen fra posisjonsstart
Anta for eksempel at vi har en fil som heter input.txt med følgende innhold.
This is a line of text inside the file.
La oss prøve å lese filen ved hjelp av 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(); ) ) )
Produksjon
Data i filen: Dette er en tekstlinje i filen.
I eksemplet ovenfor har vi opprettet en filleser som heter input. Filleseren er koblet til filen input.txt .
FileInputStream input = new FileInputStream("input.txt");
For å lese data fra filen har vi brukt read()
metoden.
getEncoding () Metode
Den getEncoding()
metode kan brukes for å få den type koding som brukes til å lagre 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(); ) ) )
Produksjon
Tegnkodingen av input1: Cp1252 Tegnkodingen av input2: UTF8
I eksemplet ovenfor har vi opprettet 2 fillesere kalt input1 og input2.
- input1 spesifiserer ikke tegnkodingen. Derfor
getEncoding()
returnerer metoden standard tegnkoding. - input2 spesifiserer tegnkodingen, UTF8 . Derfor
getEncoding()
returnerer metoden den spesifiserte tegnkodingen.
Merk : Vi har brukt Charset.forName()
metoden til å spesifisere typen tegnkoding. For å lære mer, besøk Java Charset (offisiell Java-dokumentasjon).
lukk () Metode
For å lukke filleseren kan vi bruke close()
metoden. Når close()
metoden er kalt, kan vi ikke bruke leseren til å lese dataene.
Andre metoder for FileReader
Metode | Beskrivelse |
---|---|
ready() | sjekker om filleseren er klar til å bli lest |
mark() | merk posisjonen i filleseren som data er lest opp til |
reset() | returnerer kontrollen til det punktet i leseren der merket ble satt |
For å lære mer, besøk Java FileReader (offisiell Java-dokumentasjon).