Ebben az oktatóanyagban példák segítségével megismerhetjük a Java FileReadert és annak módszereit.
A csomag FileReader
osztálya java.io
felhasználható fájlok adatainak (karakterben) kiolvasására.
Ez kiterjeszti az InputSreamReader
osztá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.FileReader
elő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 Charset
osztály segítségével határoztuk meg a fájlolvasó karakterkódolását.
A FileReader módszerei
Az FileReader
osztály megvalósításokat biztosít az Reader
osztá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.