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ů.
Prohlášení čtenářské třídy
Prohlášení o třídě čtenářů je uvedeno níže:
java znak na celé číslo
public abstract class Reader implementuje Readable Closeable
Příklad: Čtěte textový soubor znak po znaku pomocí třídy Reader.
Javaimport 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:
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
seznam seřazený java
Uložte soubor a spusťte program. Program přečte a zobrazí obsah příkladu1.txtjako výstup.
Konstruktéři Reader Class
S třídou Java Reader Class se používají dva konstruktory, jak je uvedeno níže:
herec amrita rao
- 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ě.
Javaimport 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:
Realizace čtenářských kurzů
Některé z implementací tříd Reader v Javě jsou uvedeny níže:
- BufferedReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader