V tomto výukovém programu se na příkladech seznámíme s Java FileReader a jeho metodami.
FileReader
Třída java.io
obalu lze použít ke čtení dat (ve znacích) ze souborů.
Rozšiřuje InputSreamReader
třídu.
Než se dozvíte něco o FileReader
, ujistěte se, že víte o souboru Java.
Vytvořte FileReader
Abychom mohli vytvořit čtečku souborů, musíme java.io.FileReader
nejprve importovat balíček. Jakmile importujeme balíček, můžeme vytvořit čtečku souborů takto.
1. Použití názvu souboru
FileReader input = new FileReader(String name);
Zde jsme vytvořili čtečku souborů, která bude propojena se souborem určeným jménem.
2. Použití objektu souboru
FileReader input = new FileReader(File fileObj);
Zde jsme vytvořili čtečku souborů, která bude propojena se souborem určeným objektem souboru.
Ve výše uvedeném příkladu jsou data v souboru uložena pomocí nějakého výchozího kódování znaků.
Vzhledem k tomu, že Java 11 můžeme v souboru určit typ kódování znaků ( UTF-8 nebo UTF-16 ).
FileReader input = new FileReader(String file, Charset cs);
Zde jsme použili Charset
třídu k určení kódování znaků čtečky souborů.
Metody FileReader
FileReader
Třída poskytuje implementace pro různé metody prezentovat ve Reader
třídě.
metoda read ()
read()
- načte jeden znak z čtečkyread(char() array)
- načte znaky ze čtečky a uloží je do zadaného poleread(char() array, int start, int length)
- načte počet znaků rovných délce ze čtečky a uloží do zadaného pole počínaje od začátku pozice
Předpokládejme například, že máme soubor s názvem input.txt s následujícím obsahem.
This is a line of text inside the file.
Zkusme soubor přečíst pomocí 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ýstup
Data v souboru: Toto je řádek textu uvnitř souboru.
Ve výše uvedeném příkladu jsme vytvořili čtečku souborů s názvem input. Čtečka souborů je propojena se souborem input.txt .
FileInputStream input = new FileInputStream("input.txt");
K načtení dat ze souboru jsme použili read()
metodu.
Metoda getEncoding ()
getEncoding()
Metoda může být použita k získání typ kódování, který se používá pro ukládání dat v souboru. Například,
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ýstup
Kódování znaků vstupu1: Cp1252 Kódování znaků vstupu2: UTF8
Ve výše uvedeném příkladu jsme vytvořili 2 čtečky souborů s názvem input1 a input2.
- input1 neurčuje kódování znaků. Proto
getEncoding()
metoda vrací výchozí kódování znaků. - input2 určuje kódování znaků, UTF8 . Proto
getEncoding()
metoda vrací zadané kódování znaků.
Poznámka : Charset.forName()
Metodu jsme použili k určení typu kódování znaků. Chcete-li se dozvědět více, navštivte Java Charset (oficiální dokumentace Java).
metoda close ()
K uzavření čtečky souborů můžeme použít close()
metodu. Jakmile je close()
metoda volána, nemůžeme použít čtečku ke čtení dat.
Další metody FileReader
Metoda | Popis |
---|---|
ready() | zkontroluje, zda je čtečka souborů připravena ke čtení |
mark() | označte ve čtečce souborů pozici, do které byla načtena data |
reset() | vrátí ovládací prvek do bodu ve čtečce, kde byla nastavena značka |
Další informace najdete v Java FileReader (oficiální dokumentace Java).