Clasa Java Reader
Clasa Reader în Java este un clasa abstractă pentru citirea fluxurilor de caractere. Subclasele sale ( FileReader BufferedReade ) furnizează implementări cu read() fiind metoda principală de citire a caracterelor.
- Implementează interfața Readable care definește metoda read(CharBuffer cb).
- Implementează interfața Closeable care definește metoda close() pentru a elibera resurse.
Cititor Declarația Reader Class
Declarația clasei Reader este dată mai jos:
public abstract class Reader implementează Readable Closeable
Exemplu: Citiți un fișier text caracter cu caracter folosind clasa 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 ()); } } }
Ieșire:
ieșire Nota: Pentru a vă asigura că programul rulează corect, creați un fișier numit example1.txt în directorul de lucru.
Adăugați următorul conținut la fișier sau puteți adăuga orice text.
Bună, bun venit la Geeks for Geeks
Salvați fișierul și rulați programul. Programul va citi și afișa conținutul exemplului1 .txt ca ieșire.
Constructorii clasei Reader
Există doi constructori utilizați cu Java Reader Class, așa cum este menționat mai jos:
- Reader protejat(): Creează un nou cititor de caractere ale cărui secțiuni critice se vor sincroniza cu cititorul însuși.
- Cititor protejat (Blocare obiect) : creează un nou cititor de flux de caractere ale cărui secțiuni critice se vor sincroniza pe obiectul dat.
Metode ale clasei Java Reader
| Metodă | Descriere |
|---|---|
| vid abstract close() | Închide fluxul și eliberează resurse. |
| marcare nulă (int readAheadLimit) | Marchează poziția curentă în flux. |
| marca booleană acceptată () | Verifică dacă operațiunile de marcare/resetare sunt acceptate. |
| int read() | Citește un singur caracter din flux. Returnează -1 dacă se ajunge la final. |
| int read(char[] cbuf) | Citește mai multe caractere într-o matrice. |
| abstract int read(char[] cbuf int off int len) | Citește o porțiune a matricei începând cu offset off pentru lungimea len. |
| int read(ținta CharBuffer) | Citește caractere într-un obiect CharBuffer. |
| void reset() | Resetează fluxul la cea mai recentă poziție a marcajului. |
| salt lung (n lung) | Omite numărul specificat de caractere. |
Exemplu: Programul de mai jos demonstrează funcționarea diferitelor funcționalități ale clasei Reader în Java.
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 (); } }
Ieșire:
Ieșire Implementarea claselor de cititor
Unele dintre implementările claselor Reader în Java sunt menționate mai jos:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader