Tässä opetusohjelmassa opitaan Java FileReaderista ja sen menetelmistä esimerkkien avulla.
FileReader
Luokan java.io
paketti voidaan käyttää tietojen lukemiseen (merkit) tiedostoista.
Se laajentaa InputSreamReader
luokkaa.
Ennen kuin opit FileReader
, varmista, että tiedät Java-tiedostosta.
Luo FileReader
Tiedostolukijan luomiseksi meidän on java.io.FileReader
ensin tuotava paketti. Kun tuot paketin, voimme luoda tiedostolukijan näin.
1. Käyttämällä tiedoston nimeä
FileReader input = new FileReader(String name);
Tässä olemme luoneet tiedostonlukijan, joka linkitetään nimen määrittelemään tiedostoon.
2. Tiedoston objektin käyttäminen
FileReader input = new FileReader(File fileObj);
Tässä olemme luoneet tiedostonlukijan, joka linkitetään tiedoston objektin määrittelemään tiedostoon.
Yllä olevassa esimerkissä tiedoston tiedot tallennetaan käyttämällä jotakin oletusmerkkikoodausta.
Java 11: n jälkeen voimme kuitenkin määrittää myös tiedostossa olevan merkkikoodauksen tyypin ( UTF-8 tai UTF-16 ).
FileReader input = new FileReader(String file, Charset cs);
Tässä olemme käyttäneet Charset
luokkaa tiedostolukijan merkintäkoodauksen määrittämiseen.
FileReaderin menetelmät
FileReader
Luokka antaa toteutuksia eri menetelmiä esittää, että Reader
luokan.
read () Menetelmä
read()
- lukee yhden merkin lukijaltaread(char() array)
- lukee merkit lukijalta ja tallentaa määritettyyn ryhmäänread(char() array, int start, int length)
- lukee lukijalta pituuden verran merkkien lukumäärän ja tallentaa määrätyn matriisin paikan alusta alkaen
Oletetaan esimerkiksi, että meillä on tiedosto nimeltä input.txt, jolla on seuraava sisältö.
This is a line of text inside the file.
Yritetään lukea tiedosto käyttämällä 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(); ) ) )
Tuotos
Tiedot tiedostossa: Tämä on tekstirivi tiedoston sisällä.
Yllä olevassa esimerkissä olemme luoneet tiedostonlukijan nimeltä input. Tiedostonlukija on linkitetty tiedostoon input.txt .
FileInputStream input = new FileInputStream("input.txt");
Tietojen lukemiseksi tiedostosta olemme käyttäneet read()
menetelmää.
getEncoding () -menetelmä
getEncoding()
Menetelmää voidaan käyttää saamaan koodauslajin, jota käytetään tallentaa tiedoston tiedot. Esimerkiksi,
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(); ) ) )
Tuotos
Tulon1 merkkikoodaus: Cp1252 Tulon2 merkkikoodaus: UTF8
Yllä olevassa esimerkissä olemme luoneet 2 tiedostolukijaa nimeltään input1 ja input2.
- input1 ei määritä merkkikoodausta. Siksi
getEncoding()
menetelmä palauttaa oletusmerkkikoodauksen. - input2 määrittää merkkikoodauksen UTF8 . Siksi
getEncoding()
menetelmä palauttaa määritetyn merkkikoodauksen.
Huomaa : Olemme käyttäneet Charset.forName()
menetelmää merkkien koodauksen tyypin määrittämiseen. Lisätietoja on Java Charset -sivustossa (virallinen Java-dokumentaatio).
sulje () Menetelmä
Tiedostonlukijan sulkemiseksi voimme käyttää close()
menetelmää. Kun close()
menetelmä on kutsuttu, emme voi käyttää lukijaa tietojen lukemiseen.
Muut FileReader-menetelmät
Menetelmä | Kuvaus |
---|---|
ready() | tarkistaa, onko tiedostojen lukulaite valmis lukemaan |
mark() | merkitse sijainti tiedostonlukijassa, johon tiedot on luettu |
reset() | palauttaa ohjaimen lukijan kohtaan, johon merkki asetettiin |
Lisätietoja on Java FileReaderissa (virallinen Java-dokumentaatio).