Java BufferedReader (z przykładami)

W tym samouczku dowiemy się o Javie BufferedReader i jego metodach na przykładach.

BufferedReaderKlasa java.iopakietu może być używany z innymi czytelnikami, aby bardziej efektywnie odczytywać dane (w znakach).

Rozszerza klasę abstrakcyjną Reader.

Działanie BufferedReader

BufferedReaderUtrzymuje 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.BuferedReaderpakiet. 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 BufferedReadernazwany bufor z FileReadernazwanym plikiem.

W tym przypadku bufor wewnętrzny BufferedReaderma 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

BufferedReaderKlasa zawiera implementacje dla różnych obecnych metod Reader.

read () Metoda

  • read() - odczytuje pojedynczy znak z wewnętrznego bufora 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ą 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).

Interesujące artykuły...