V tomto výučbe sa pomocou príkladov dozvieme o prostredí Java BufferedReader a jeho metódach.
BufferedReader
Trieda java.io
obalu možno použiť s ostatnými čitateľmi čítať dáta (písmenami) efektívnejšie.
Rozširuje abstraktnú triedu Reader
.
Fungovanie BufferedReader
BufferedReader
Udržuje vnútornej vyrovnávacej pamäte 8192 znakov .
Počas operácie BufferedReader
načítania sa z disku načíta skupina znakov a uloží sa do internej medzipamäte. A z interného bufferu sa znaky čítajú jednotlivo.
Preto sa zníži počet komunikácií na disk. Preto je čítanie znakov rýchlejšie BufferedReader
.
Vytvorte BufferedReader
Aby sme vytvorili BufferedReader
, musíme najskôr importovať java.io.BuferedReader
balík. Po importovaní balíka tu môžeme vytvoriť čítačku.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
Vo vyššie uvedenom príklade sme vytvorili BufferedReader
pomenovanú vyrovnávaciu pamäť s FileReader
pomenovaným súborom.
Tu má interná vyrovnávacia pamäť BufferedReader
predvolenú veľkosť 8192 znakov. Môžeme však určiť aj veľkosť internej medzipamäte.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Vyrovnávacia pamäť pomôže rýchlejšie načítať znaky zo súborov.
Metódy BufferedReader
BufferedReader
Trieda poskytuje implementácie pre rôzne metódy prítomných v Reader
.
metóda read ()
read()
- načíta jeden znak z internej vyrovnávacej pamäte čítačkyread(char() array)
- načíta znaky z čítačky a uloží ich do zadaného poľaread(char() array, int start, int length)
- načíta z čítačky počet znakov rovný dĺžke a uloží do určeného poľa počnúc začiatkom pozície
Predpokladajme napríklad, že máme súbor s názvom input.txt s nasledujúcim obsahom.
This is a line of text inside the file.
Pokúsme sa prečítať súbor pomocou 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(); ) ) )
Výkon
Údaje v súbore: Toto je riadok textu vo vnútri súboru.
Vo vyššie uvedenom príklade sme vytvorili čítaciu pamäť s názvom buffer. Čítačka v medzipamäti je prepojená so súborom input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Tu sme použili read()
metódu na načítanie poľa znakov z vnútornej medzipamäte čítačky s medzipamäťou.
metóda skip ()
Na zahodenie a preskočenie zadaného počtu znakov môžeme použiť skip()
metódu. Napríklad,
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(); ) ) )
Výkon
Údaje po preskočení 5 znakov: je riadok textu vo vnútri súboru.
Vo vyššie uvedenom príklade sme použili skip()
metódu na preskočenie 5 znakov z čítačky súborov. Z tohto dôvodu, charaktery 'T'
, 'h'
, 'i'
, 's'
a ' '
sú vynechané z pôvodného súboru.
metóda close ()
Na zatvorenie čítačky s medzipamäťou môžeme použiť túto close()
metódu. Po close()
zavolaní metódy nemôžeme na čítanie údajov použiť čítačku.
Ďalšie metódy BufferedReader
Metóda | Popis |
---|---|
ready() | skontroluje, či je čítačka súborov pripravená na čítanie |
mark() | označte v čítačke pozíciu, do ktorej boli načítané údaje |
reset() | vráti ovládací prvok do bodu v čítačke, kde bola nastavená značka |
Ak sa chcete dozvedieť viac, navštívte Java BufferedReader (oficiálna dokumentácia Java).