Ebben az oktatóanyagban példák segítségével megismerhetjük a Java FileReadert és annak módszereit.
A csomag FileReaderosztálya java.iofelhasználható fájlok adatainak (karakterben) kiolvasására.
Ez kiterjeszti az InputSreamReaderosztályt.

Mielőtt megismerné FileReader, győződjön meg róla, hogy tud a Java fájlról.
Hozzon létre egy FileReader-t
Fájlolvasó létrehozásához java.io.FileReaderelőször importálnunk kell a csomagot. A csomag importálása után a következőképpen hozhatjuk létre a fájlolvasót.
1. A fájl nevének használata
 FileReader input = new FileReader(String name); 
Itt létrehoztunk egy fájlolvasót, amely összekapcsolódik a név által megadott fájlval.
2. A fájl objektumának használata
 FileReader input = new FileReader(File fileObj); 
Itt hoztunk létre egy fájlolvasót, amely összekapcsolódik a fájl objektuma által megadott fájllal.
A fenti példában a fájl adatait valamilyen alapértelmezett karakterkódolással tároljuk.
A Java 11 óta azonban megadhatjuk a karakterkódolás típusát ( UTF-8 vagy UTF-16 ) a fájlban is.
 FileReader input = new FileReader(String file, Charset cs); 
Itt az Charsetosztály segítségével határoztuk meg a fájlolvasó karakterkódolását.
A FileReader módszerei
Az FileReaderosztály megvalósításokat biztosít az Readerosztályban jelen lévő különböző módszerek számára .
read () módszer
read()- egyetlen karaktert olvas fel az olvasóread(char() array)- beolvassa a karaktereket az olvasóból és eltárolja a megadott tömbbenread(char() array, int start, int length)- beolvassa az olvasóból a hosszúsággal megegyező karakterek számát, és a pozíciótól kezdve a megadott tömbben tárolja
Tegyük fel például, hogy van egy input.txt nevű fájl a következő tartalommal.
 This is a line of text inside the file. 
Próbáljuk meg elolvasni a fájlt a 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(); ) ) ) 
Kimenet
Adatok a fájlban: Ez egy szövegsor a fájl belsejében.
A fenti példában létrehoztunk egy input olvasó fájlolvasót. A fájlolvasó össze van kapcsolva az input.txt fájllal .
 FileInputStream input = new FileInputStream("input.txt"); 
A fájl adatainak kiolvasásához a read()módszert használtuk .
getEncoding () metódus
A getEncoding()módszer felhasználható az adatok fájlba történő tárolásához használt kódolás típusának megszerzésére. Például,
 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(); ) ) ) 
Kimenet
Az input1 karakterkódolása: Cp1252 Az input2 karakterkódolása: UTF8
A fenti példában létrehoztunk 2 input1 és input2 nevű fájlolvasót.
- Az input1 nem adja meg a karakterkódolást. Ezért a 
getEncoding()metódus az alapértelmezett karakterkódolást adja vissza. - Az input2 adja meg az UTF8 karakterkódolást . Ezért a 
getEncoding()metódus visszaadja a megadott karakterkódolást. 
Megjegyzés : A Charset.forName()karakterkódolás típusának meghatározásához a módszert használtuk . További információkért látogasson el a Java Charset (hivatalos Java dokumentáció) oldalra.
bezár () módszer
A fájlolvasó bezárásához használhatjuk a close()módszert. A close()módszer meghívása után nem használhatjuk az olvasót az adatok kiolvasására.
A FileReader egyéb módszerei
| Módszer | Leírás | 
|---|---|
ready() |  ellenőrzi, hogy a fájlolvasó készen áll-e az olvasásra | 
mark() |  jelölje meg a fájlolvasóban azt a helyet, amelyre az adatokat beolvasták | 
reset() |  a vezérlőt az olvasó azon pontjához adja vissza, ahol a jelölést beállították | 
További információkért látogasson el a Java FileReader (hivatalos Java dokumentáció) oldalra.








