W tym samouczku, na przykładach, nauczymy się języka Java FileReader i jego metod.
FileReader
Klasa java.io
pakietu mogą być wykorzystywane do odczytu danych (w znakach) z plikami.
To rozszerza InputSreamReader
klasę.
Zanim dowiesz się o tym FileReader
, upewnij się, że znasz plik Java.
Utwórz FileReader
Aby stworzyć czytnik plików, musimy najpierw zaimportować java.io.FileReader
pakiet. Po zaimportowaniu pakietu, oto jak możemy stworzyć czytnik plików.
1. Używając nazwy pliku
FileReader input = new FileReader(String name);
Tutaj utworzyliśmy czytnik plików, który zostanie powiązany z plikiem określonym przez nazwę.
2. Korzystanie z obiektu pliku
FileReader input = new FileReader(File fileObj);
Tutaj utworzyliśmy czytnik plików, który zostanie powiązany z plikiem określonym przez obiekt pliku.
W powyższym przykładzie dane w pliku są przechowywane przy użyciu domyślnego kodowania znaków.
Jednak od wersji Java 11 możemy również określić typ kodowania znaków ( UTF-8 lub UTF-16 ) w pliku.
FileReader input = new FileReader(String file, Charset cs);
Tutaj użyliśmy Charset
klasy do określenia kodowania znaków czytnika plików.
Metody FileReader
FileReader
Klasa zawiera implementacje dla różnych sposobów przedstawienia w Reader
klasie.
read () Metoda
read()
- odczytuje pojedynczy znak z czytnikaread(char() array)
- odczytuje znaki z czytnika i przechowuje w określonej tablicyread(char() array, int start, int length)
- odczytuje liczbę znaków równą długości z czytnika i zapisuje w określonej tablicy zaczynając od pozycji początkowej
Na przykład załóżmy, że mamy plik o nazwie input.txt z następującą zawartością.
This is a line of text inside the file.
Spróbujmy odczytać plik za 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(); ) ) )
Wynik
Dane w pliku: jest to wiersz tekstu w pliku.
W powyższym przykładzie utworzyliśmy czytnik plików o nazwie input. Czytnik plików jest powiązany z plikiem input.txt .
FileInputStream input = new FileInputStream("input.txt");
Do odczytania danych z pliku posłużyliśmy się read()
metodą.
getEncoding () Metoda
getEncoding()
Metoda może być stosowana, aby uzyskać rodzaj kodowania, który jest używany do przechowywania danych w pliku. Na przykład,
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(); ) ) )
Wynik
Kodowanie znaków input1: Cp1252 Kodowanie znaków input2: UTF8
W powyższym przykładzie utworzyliśmy 2 czytniki plików o nazwach input1 i input2.
- input1 nie określa kodowania znaków. Dlatego
getEncoding()
metoda zwraca domyślne kodowanie znaków. - input2 określa kodowanie znaków, UTF8 . Dlatego
getEncoding()
metoda zwraca określone kodowanie znaków.
Uwaga : wykorzystaliśmy tę Charset.forName()
metodę, aby określić typ kodowania znaków. Aby dowiedzieć się więcej, odwiedź Java Charset (oficjalna dokumentacja Java).
close () Metoda
Aby zamknąć czytnik plików, możemy skorzystać z close()
metody. Po close()
wywołaniu metody nie możemy użyć czytnika do odczytu danych.
Inne metody FileReader
metoda | Opis |
---|---|
ready() | sprawdza, czy czytnik plików jest gotowy do odczytu |
mark() | zaznacz pozycję w czytniku plików, do której zostały odczytane dane |
reset() | zwraca kontrolkę do punktu w czytniku, w którym ustawiono znacznik |
Aby dowiedzieć się więcej, odwiedź stronę Java FileReader (oficjalna dokumentacja Java).