Java FileReader (z przykładami)

W tym samouczku, na przykładach, nauczymy się języka Java FileReader i jego metod.

FileReaderKlasa java.iopakietu mogą być wykorzystywane do odczytu danych (w znakach) z plikami.

To rozszerza InputSreamReaderklasę.

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.FileReaderpakiet. 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 Charsetklasy do określenia kodowania znaków czytnika plików.

Metody FileReader

FileReaderKlasa zawiera implementacje dla różnych sposobów przedstawienia w Readerklasie.

read () Metoda

  • read() - odczytuje pojedynczy znak z czytnika
  • read(char() array) - odczytuje znaki z czytnika i przechowuje w określonej tablicy
  • read(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).

Interesujące artykuły...