Java Reader klasė
„Java“ skaitytuvo klasė yra abstrakti klasė personažų srautams skaityti. Jo poklasiai ( Failų skaitytuvas BufferedReade ) pateikia diegimus, kuriuose read() yra pagrindinis simbolių skaitymo būdas.
- Tai įgyvendina skaitymo sąsają, kuri apibrėžia skaitymo (CharBuffer cb) metodą.
- Ji įgyvendina Closeable sąsają, kuri apibrėžia close() metodą ištekliams išleisti.
Skaitytojas Skaitytojų klasės deklaracija
Skaitytojo klasės deklaracija pateikta žemiau:
public absttract class Reader įgyvendina Readable Closeable
Pavyzdys: Skaitykite tekstinį failą po simbolio naudodami Reader klasę.
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 ()); } } }
Išvestis:
išvestis Pastaba: Norėdami užtikrinti, kad programa veiktų teisingai, darbo kataloge sukurkite failą, pavadintą example1.txt.
Pridėkite toliau nurodytą turinį prie failo arba galite pridėti bet kokį tekstą.
Sveiki atvykę į „Geeks for Geeks“.
Išsaugokite failą ir paleiskite programą. Programa skaitys ir parodys 1 pavyzdžio turinį .txt kaip išvestis.
Skaitytojų klasės konstruktoriai
Yra du konstruktoriai, naudojami su „Java Reader Class“, kaip nurodyta toliau:
- apsaugotas skaitytuvas (): Sukuria naują simbolių srauto skaitytuvą, kurio kritinės skiltys bus sinchronizuojamos su pačiu skaitytuvu.
- apsaugotas skaitytuvas (objekto užraktas) : sukuria naują simbolių srauto skaitytuvą, kurio kritinės sekcijos bus sinchronizuojamos su nurodytu objektu.
Java Reader klasės metodai
| Metodas | Aprašymas |
|---|---|
| abstraktus tuštumas uždaryti () | Uždaro srautą ir išleidžia išteklius. |
| negaliojantis ženklas (int readAheadLimit) | Pažymi dabartinę padėtį sraute. |
| loginis ženklasSupported() | Patikrina, ar palaikomos žymėjimo/atstatymo operacijos. |
| int read () | Skaito vieną simbolį iš srauto. Grąžina -1, jei pasiekiama pabaiga. |
| int skaityti (char[] cbuf) | Skaito kelis simbolius į masyvą. |
| abstract int read(char[] cbuf int off int len) | Nuskaito masyvo dalį, pradedant nuo poslinkio ilgio len. |
| int read (CharBuffer tikslas) | Skaito simbolius į CharBuffer objektą. |
| negaliojantis atstatymas () | Iš naujo nustato srautą į naujausią žymos poziciją. |
| ilgas praleidimas (ilgas n) | Praleidžia nurodytą simbolių skaičių. |
Pavyzdys: Žemiau pateikta programa demonstruoja įvairių „Reader“ klasės funkcijų veikimą „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 (); } }
Išvestis:
Išvestis Skaitytojų klasių įgyvendinimas
Kai kurie „Java“ skaitytuvo klasių diegimai yra paminėti toliau:
- BufferedReader
- CharArrayReader
- „FilterReader“.
- InputStreamReader
- PipedReader
- StringReader