V tomto výukovém programu se pomocí příkladů dozvíme o prostředí Java BufferedReader a jeho metodách.
BufferedReader
Třída java.io
obalu lze použít s ostatními čtenáři číst data (ve znacích) efektivněji.
Rozšiřuje abstraktní třídu Reader
.
Práce s BufferedReader
BufferedReader
Udržuje vnitřní vyrovnávací paměti 8192 znaků .
Během operace čtení BufferedReader
je z disku načtena skupina znaků a uložena do interní vyrovnávací paměti. A z interní vyrovnávací paměti se čte znaky jednotlivě.
Proto je snížen počet komunikace na disk. Proto je čtení znaků rychlejší BufferedReader
.
Vytvořte BufferedReader
Aby bylo možné vytvořit BufferedReader
, musíme java.io.BuferedReader
nejprve importovat balíček. Jakmile importujeme balíček, můžeme vytvořit čtečku takto.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
Ve výše uvedeném příkladu jsme vytvořili BufferedReader
pojmenovanou vyrovnávací paměť s FileReader
pojmenovaným souborem.
Zde má vnitřní vyrovnávací paměť BufferedReader
výchozí velikost 8192 znaků. Můžeme však také určit velikost vnitřní vyrovnávací paměti.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Vyrovnávací paměť pomůže rychleji číst znaky ze souborů.
Metody BufferedReader
BufferedReader
Třída poskytuje implementace pro různé metody přítomných v Reader
.
metoda read ()
read()
- načte jeden znak z vnitřní vyrovnávací paměti čtečkyread(char() array)
- načte znaky ze čtečky a uloží je do zadaného poleread(char() array, int start, int length)
- načte počet znaků rovných délce ze čtečky a uloží do zadaného pole počínaje od začátku pozice
Předpokládejme například, že máme soubor s názvem input.txt s následujícím obsahem.
This is a line of text inside the file.
Zkusme soubor přečíst 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(); ) ) )
Výstup
Data v souboru: Toto je řádek textu uvnitř souboru.
Ve výše uvedeném příkladu jsme vytvořili čtečku s názvem ve vyrovnávací paměti s názvem input. Čtečka ve vyrovnávací paměti je propojena se souborem input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Zde jsme použili read()
metodu pro načtení pole znaků z interní vyrovnávací paměti čtečky s vyrovnávací pamětí.
metoda skip ()
K vyřazení a přeskočení zadaného počtu znaků můžeme použít skip()
metodu. Napří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ýstup
Data po přeskočení 5 znaků: je řádek textu uvnitř souboru.
Ve výše uvedeném příkladu jsme použili skip()
metodu k přeskočení 5 znaků ze čtečky souborů. Z tohoto důvodu, charaktery 'T'
, 'h'
, 'i'
, 's'
a ' '
jsou vynechány z původního souboru.
metoda close ()
K uzavření čtečky s vyrovnávací pamětí můžeme použít close()
metodu. Jakmile je close()
metoda volána, nemůžeme použít čtečku ke čtení dat.
Další metody BufferedReader
Metoda | Popis |
---|---|
ready() | zkontroluje, zda je čtečka souborů připravena ke čtení |
mark() | označte ve čtečce pozici, do které byla načtena data |
reset() | vrátí ovládací prvek do bodu ve čtečce, kde byla nastavena značka |
Další informace najdete v Java BufferedReader (oficiální dokumentace Java).