Selles õpetuses õpime näidete abil Java FileReaderit ja selle meetodeid.
FileReader
Klassi java.io
pakett saab kasutada andmete lugemiseks (märki) failidest.
See pikendab InputSreamReader
klassi.
Enne kui saate teada FileReader
, veenduge, et teaksite Java-faili.
Looge FileReader
Faililugeja loomiseks peame java.io.FileReader
esmalt paketi importima . Kui pakett on imporditud, saate faililugeja luua järgmiselt.
1. Kasutades faili nime
FileReader input = new FileReader(String name);
Siin oleme loonud faililugeja, mis on lingitud nimega määratud failiga.
2. Faili objekti kasutamine
FileReader input = new FileReader(File fileObj);
Siin oleme loonud faililugeja, mis on seotud faili objektiga määratud failiga.
Ülaltoodud näites salvestatakse failis olevad andmed mõne vaikimisi märgikodeeringu abil.
Kuid alates Java 11-st saame failis määrata ka märkide kodeerimise tüübi ( UTF-8 või UTF-16 ).
FileReader input = new FileReader(String file, Charset cs);
Siin oleme Charset
klassi kasutanud faililugeja märgikodeeringu täpsustamiseks.
FileReaderi meetodid
FileReader
Tasemega näeb implementation erinevaid meetodeid sisalduse funktsioon Reader
tasemega.
loe () meetod
read()
- loeb lugejast välja ühe tegelaseread(char() array)
- loeb tähemärke lugejast ja salvestab määratud massiiviread(char() array, int start, int length)
- loeb lugejalt pikkusega võrdse tähemärkide arvu ja salvestab määratud massiivi alates positsiooni algusest
Oletame näiteks, et meil on järgmise sisuga fail nimega input.txt .
This is a line of text inside the file.
Proovime faili lugeda 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(); ) ) )
Väljund
Andmed failis: see on failirea tekstirida.
Ülaltoodud näites oleme loonud faililugeja nimega sisend. Faililugeja on lingitud failiga input.txt .
FileInputStream input = new FileInputStream("input.txt");
Failist andmete lugemiseks oleme kasutanud read()
meetodit.
getEncoding () meetod
getEncoding()
Meetodit saab kasutada, et saada kodeerimistüüp, mida kasutatakse andmete salvestamiseks faili. Näiteks,
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(); ) ) )
Väljund
Sisendi1: Cp1252 märkide kodeering: sisendi2: UTF8 märkide kodeerimine
Ülaltoodud näites oleme loonud 2 faililugejat nimega input1 ja input2.
- input1 ei määra märkide kodeerimist. Seega
getEncoding()
tagastab meetod vaikimisi märgikodeeringu. - input2 määrab tähemärgi kodeerimise UTF8 . Seega
getEncoding()
tagastab meetod määratud märgikodeeringu.
Märkus . Me kasutasime Charset.forName()
meetodit märkide kodeerimise tüübi määramiseks. Lisateabe saamiseks külastage Java Charset (ametlik Java dokumentatsioon).
close () meetod
Faililugeja sulgemiseks saame kasutada close()
meetodit. Kui close()
meetod on välja kutsutud, ei saa me andmete lugemiseks kasutada lugejat.
Muud FileReaderi meetodid
Meetod | Kirjeldus |
---|---|
ready() | kontrollib, kas faililugeja on lugemiseks valmis |
mark() | märkige faililugeja asukoht, kuhu andmed on loetud |
reset() | tagastab juhtnupu lugeris punkti, kuhu märk pandi |
Lisateabe saamiseks külastage Java FileReaderi (ametlik Java dokumentatsioon).