V tej vadnici bomo s pomočjo primerov spoznali Java FileReader in njegove metode.
FileReader
Razred java.io
paket se lahko uporablja za branje podatkov (v znakih) iz datotek.
Razširja InputSreamReader
razred.
Preden se naučite FileReader
, preverite, ali poznate datoteko Java.
Ustvarite FileReader
Če želimo ustvariti bralnik datotek, moramo najprej uvoziti java.io.FileReader
paket. Ko uvozimo paket, tukaj je opisano, kako lahko ustvarimo bralnik datotek.
1. Uporaba imena datoteke
FileReader input = new FileReader(String name);
Tu smo ustvarili bralnik datotek, ki bo povezan z datoteko, določeno z imenom.
2. Uporaba predmeta datoteke
FileReader input = new FileReader(File fileObj);
Tu smo ustvarili bralnik datotek, ki bo povezan z datoteko, ki jo določa predmet datoteke.
V zgornjem primeru se podatki v datoteki shranijo s privzetim kodiranjem znakov.
Od Java 11 pa lahko v datoteki določimo tudi vrsto kodiranja znakov ( UTF-8 ali UTF-16 ).
FileReader input = new FileReader(String file, Charset cs);
Tu smo uporabili Charset
razred za določanje kodiranja znakov bralnika datotek.
Metode FileReader
FileReader
Razred določa izvedb za različne načine predstaviti v Reader
razredu.
metoda read ()
read()
- od bralca prebere en sam znakread(char() array)
- prebere znake iz bralnika in jih shrani v določeno poljeread(char() array, int start, int length)
- iz bralnika prebere število znakov, enako dolžini, in shrani v določeno matriko, začenši od začetka položaja
Denimo, da imamo datoteko z imenom input.txt z naslednjo vsebino.
This is a line of text inside the file.
Poskusimo datoteko prebrati z 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(); ) ) )
Izhod
Podatki v datoteki: To je vrstica besedila znotraj datoteke.
V zgornjem primeru smo ustvarili bralnik datotek z imenom input. Bralnik datotek je povezan z datoteko input.txt .
FileInputStream input = new FileInputStream("input.txt");
Za branje podatkov iz datoteke smo uporabili read()
metodo.
metoda getEncoding ()
Z getEncoding()
metodo lahko dobite vrsto kodiranja, ki se uporablja za shranjevanje podatkov v datoteki. Na primer
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(); ) ) )
Izhod
Kodiranje znakov vhoda1: Cp1252 Kodiranje znakov vnosa2: UTF8
V zgornjem primeru smo ustvarili 2 bralnika datotek z imenom input1 in input2.
- input1 ne določa kodiranja znakov. Zato
getEncoding()
metoda vrne privzeto kodiranje znakov. - input2 določa kodiranje znakov, UTF8 . Zato
getEncoding()
metoda vrne določeno kodiranje znakov.
Opomba : Z Charset.forName()
metodo smo določili vrsto kodiranja znakov. Če želite izvedeti več, obiščite Java Charset (uradna dokumentacija Java).
metoda close ()
Za zapiranje bralnika datotek lahko uporabimo close()
metodo. Ko je close()
metoda enkrat poklicana, ne moremo uporabljati bralnika za branje podatkov.
Druge metode FileReaderja
Metoda | Opis |
---|---|
ready() | preveri, ali je bralnik datotek pripravljen za branje |
mark() | označite položaj v bralniku datotek, do katerega so bili prebrani podatki |
reset() | vrne kontrolnik do točke v čitalniku, kjer je bila nastavljena oznaka |
Če želite izvedeti več, obiščite Java FileReader (uradna dokumentacija Java).