W tym samouczku dowiemy się o Javie BufferedReader i jego metodach na przykładach.
BufferedReader
Klasa java.io
pakietu może być używany z innymi czytelnikami, aby bardziej efektywnie odczytywać dane (w znakach).
Rozszerza klasę abstrakcyjną Reader
.
Działanie BufferedReader
BufferedReader
Utrzymuje wewnętrzny bufor 8192 znaków .
Podczas operacji odczytu w BufferedReader
, fragment znaków jest odczytywany z dysku i zapisywany w buforze wewnętrznym. A z wewnętrznego bufora znaki są odczytywane indywidualnie.
W związku z tym zmniejsza się liczba komunikacji z dyskiem. Dlatego czytanie znaków jest szybsze przy użyciu BufferedReader
.
Utwórz BufferedReader
Aby utworzyć plik BufferedReader
, musimy najpierw zaimportować java.io.BuferedReader
pakiet. Po zaimportowaniu pakietu, oto jak możemy stworzyć czytnik.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
W powyższym przykładzie utworzyliśmy BufferedReader
nazwany bufor z FileReader
nazwanym plikiem.
W tym przypadku bufor wewnętrzny BufferedReader
ma domyślny rozmiar 8192 znaków. Możemy jednak określić również rozmiar bufora wewnętrznego.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Bufor pomoże szybciej odczytać znaki z plików.
Metody BufferedReader
BufferedReader
Klasa zawiera implementacje dla różnych obecnych metod Reader
.
read () Metoda
read()
- odczytuje pojedynczy znak z wewnętrznego bufora 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ą BufferedReader
.
import java.io.FileReader; import java.io.BufferedReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileReader FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // 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 buforowany czytnik o nazwie input. Buforowany czytnik jest powiązany z plikiem input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Tutaj użyliśmy tej read()
metody do odczytania tablicy znaków z wewnętrznego bufora buforowanego czytnika.
skip () Metoda
Aby odrzucić i pominąć określoną liczbę znaków, możemy użyć skip()
metody. Na przykład,
import java.io.FileReader; import java.io.BufferedReader; public class Main ( public static void main(String args()) ( // Creates an array of characters char() array = new char(100); try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Skips the 5 characters input.skip(5); // Reads the characters input.read(array); System.out.println("Data after skipping 5 characters:"); System.out.println(array); // closes the reader input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Wynik
Dane po pominięciu 5 znaków: to linia tekstu w pliku.
W powyższym przykładzie użyliśmy skip()
metody do pominięcia 5 znaków z czytnika plików. Stąd znaki 'T'
, 'h'
, 'i'
, 's'
i ' '
są pomijane z oryginalnego pliku.
close () Metoda
Aby zamknąć buforowany czytnik, możemy użyć close()
metody. Po close()
wywołaniu metody nie możemy użyć czytnika do odczytu danych.
Inne metody BufferedReader
metoda | Opis |
---|---|
ready() | sprawdza, czy czytnik plików jest gotowy do odczytu |
mark() | zaznacz pozycję w czytniku, do której odczytano dane |
reset() | zwraca kontrolkę do punktu w czytniku, w którym ustawiono znacznik |
Aby dowiedzieć się więcej, odwiedź stronę Java BufferedReader (oficjalna dokumentacja Java).