Třída Java Reader
Třída Reader v Javě je an abstraktní třída pro čtení proudů znaků. Jeho podtřídy ( FileReader BufferedReade ) poskytují implementace s read() jako hlavní metodou pro čtení znaků.
- Implementuje rozhraní Readable, které definuje metodu read(CharBuffer cb).
- Implementuje rozhraní Closeable, které definuje metodu close() pro uvolnění zdrojů.
Čtenář Prohlášení čtenářské třídy
Prohlášení o třídě čtenářů je uvedeno níže:
public abstract class Reader implementuje Readable Closeable
Příklad: Čtěte textový soubor znak po znaku pomocí třídy Reader.
Java import java.io.* ; public class Geeks { public static void main ( String [] args ) { try { // Create a FileReader object which is a subclass of Reader Reader r = new FileReader ( 'example1.txt' ); // Read one character at a time from the file int data = r . read (); while ( data != - 1 ) { // Convert the int to char and print System . out . print (( char ) data ); data = r . read (); } // Close the reader r . close (); } catch ( Exception ex ) { System . out . println ( 'An error occurred: ' + ex . getMessage ()); } } }
výstup:
výstup Poznámka: Pro zajištění správného běhu programu vytvořte v pracovním adresáři soubor s názvem example1.txt.
Přidejte do souboru následující obsah nebo můžete přidat libovolný text.
Dobrý den, vítejte v Geeks for Geeks
Uložte soubor a spusťte program. Program přečte a zobrazí obsah příkladu1 .txt jako výstup.
Konstruktéři Reader Class
S třídou Java Reader Class se používají dva konstruktory, jak je uvedeno níže:
- chráněná čtečka(): Vytvoří novou čtečku toku znaků, jejíž kritické sekce se budou synchronizovat na samotné čtečce.
- chráněná čtečka (zámek objektu) : Vytvoří novou čtečku znakového proudu, jejíž kritické sekce se budou synchronizovat na daném objektu.
Metody třídy Java Reader
| Metoda | Popis |
|---|---|
| abstraktní void close() | Zavře stream a uvolní zdroje. |
| void mark (int readAheadLimit) | Označuje aktuální pozici ve streamu. |
| boolean markSupported() | Zkontroluje, zda jsou podporovány operace označení/resetování. |
| int read() | Přečte jeden znak ze streamu. Vrátí -1, pokud je dosaženo konce. |
| int read(char[] cbuf) | Přečte více znaků do pole. |
| abstract int read(char[] cbuf int off int len) | Přečte část pole začínající na offsetu pro délku len. |
| int read (cíl CharBuffer) | Čte znaky do objektu CharBuffer. |
| void reset() | Resetuje stream na poslední pozici značky. |
| dlouhý skok (dlouhé n) | Přeskočí zadaný počet znaků. |
Příklad: Níže uvedený program demonstruje fungování různých funkcí třídy Reader v Javě.
Java import java.io.* ; import java.nio.CharBuffer ; import java.util.Arrays ; public class Geeks { public static void main ( String [] args ) throws IOException { // Open a file reader Reader r = new FileReader ( 'file.txt' ); PrintStream out = System . out ; // Create a character array and CharBuffer char [] buffer = new char [ 10 ] ; CharBuffer charBuffer = CharBuffer . wrap ( buffer ); // Check if the reader supports marking if ( r . markSupported ()) { r . mark ( 100 ); // Mark the current position out . println ( 'mark method is supported' ); } // Skip 5 characters in the stream r . skip ( 5 ); // Check if the stream is ready to read if ( r . ready ()) { // Read 10 characters into the buffer r . read ( buffer 0 10 ); out . println ( 'Buffer after reading 10 chars: ' + Arrays . toString ( buffer )); // Read characters into the CharBuffer r . read ( charBuffer ); out . println ( 'CharBuffer contents: ' + Arrays . toString ( charBuffer . array ())); // Read a single character out . println ( 'Next character: ' + ( char ) r . read ()); } // Close the reader r . close (); } }
výstup:
Výstup Realizace čtenářských kurzů
Některé z implementací tříd Reader v Javě jsou uvedeny níže:
- BufferedReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader