Čte text ze vstupního proudu znaků, ukládá znaky do vyrovnávací paměti, aby bylo zajištěno efektivní čtení znaků, polí a řádků. Velikost vyrovnávací paměti může být specifikována nebo může být použita výchozí velikost. Výchozí hodnota je dostatečně velká pro většinu účelů. Obecně platí, že každý požadavek na čtení provedený čtečkou způsobí, že bude vzat odpovídající požadavek na čtení základního znakového nebo bytového toku. Proto je vhodné zabalit BufferedReader kolem jakéhokoli Readeru, jehož operace read() mohou být nákladné, jako jsou FileReaders a InputStreamReaders. Programy, které používají DataInputStreams pro textový vstup, lze lokalizovat nahrazením každého z nich DataInputStream s vhodným BufferedReader .
Konstruktoři třídy BufferedReader
Konstruktér | Akce provedena |
---|---|
BufferedReader (Reader in) | Vytvoří proud znakového vstupu do vyrovnávací paměti, který používá vstupní vyrovnávací paměť výchozí velikosti |
BufferedReader (čtenář v, int sz) | Vytvoří proud znakového vstupu do vyrovnávací paměti, který používá vstupní vyrovnávací paměť zadané velikosti. |
Metody třídy BufferedReader
Název metody | Akce |
---|---|
zavřít() | Zavře stream a uvolní veškeré systémové prostředky s ním spojené. Jakmile bude stream uzavřen, další vyvolání read(), ready(), mark(), reset() nebo skip() vyvolá IOException. Uzavření dříve uzavřeného streamu nemá žádný účinek. |
označit() | Označuje aktuální pozici ve streamu. Následná volání reset() se pokusí přemístit proud do tohoto bodu. |
markSupported() | Říká, zda tento proud podporuje operaci mark(), což podporuje. |
číst() | Čte jeden znak. |
read(char[] cbuf, int off, int len) | Přečte znaky do části pole. Tato metoda implementuje obecný kontrakt odpovídající metody čtení třídy Reader. Jako další pohodlí se pokouší přečíst co nejvíce znaků opakovaným vyvoláním metody čtení podkladového proudu. |
readLine() | Přečte řádek textu. Řádek je považován za ukončený libovolným posunem řádku (‚ ‘), návratem na začátek řádku (‚ ‘) nebo návratem vozíku, po kterém bezprostředně následuje posun řádku. |
připraven() | Sděluje, zda je tento stream připraven ke čtení. |
reset() | Resetuje stream na nejnovější značku. |
přeskočit (dlouho) | Přeskočí znaky. |
Implementace: Obsah uvnitř souboru je následující:
This is first line this is second line>
Příklad
rozhraní vs abstraktní třída
Jáva
iterátor java mapa
java matematika.min
// Java Program to Illustrate BufferedReader Class> // Via Its Methods> > // Importing required classes> import> java.io.BufferedReader;> import> java.io.FileReader;> import> java.io.IOException;> > // Class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > throws> IOException> > {> > > // Creating object of FileReader and BufferedReader> > // class> > FileReader fr => new> FileReader(> 'file.txt'> );> > BufferedReader br => new> BufferedReader(fr);> > > char> c[] => new> char> [> 20> ];> > > // Illustrating markSupported() method> > if> (br.markSupported()) {> > > // Print statement> > System.out.println(> > 'mark() method is supported'> );> > > // Illustrating mark method> > br.mark(> 100> );> > }> > > // File Contents is as follows:> > // This is first line> > // this is second line> > > // Skipping 8 characters> > br.skip(> 8> );> > > // Illustrating ready() method> > if> (br.ready()) {> > > // Illustrating readLine() method> > System.out.println(br.readLine());> > > // Illustrating read(char c[],int off,int len)> > br.read(c);> > > for> (> int> i => 0> ; i <> 20> ; i++) {> > System.out.print(c[i]);> > }> > > System.out.println();> > > // Illustrating reset() method> > br.reset();> > for> (> int> i => 0> ; i <> 8> ; i++) {> > > // Illustrating read() method> > System.out.print((> char> )br.read());> > }> > }> > }> }> |
>
>
kolik 0 v miliardě
Výstup:
mark() method is supported first line this is second line This is>