Java-lukijaluokka
Javan Reader-luokka on abstrakti luokka hahmovirtojen lukemiseen. Sen alaluokat ( Tiedostonlukija PuskuroituReade ) tarjoavat toteutuksia, joissa read() on tärkein tapa lukea merkkejä.
- Se toteuttaa Readable-rajapinnan, joka määrittelee read(CharBuffer cb) -menetelmän.
- Se toteuttaa Closeable-rajapinnan, joka määrittää close()-menetelmän resurssien vapauttamiseksi.
Lukija Lukijaluokan ilmoitus
Lukijaluokan ilmoitus on annettu alla:
julkinen abstrakti luokka Reader toteuttaa Readable Closeable
Esimerkki: Lue tekstitiedosto merkki merkiltä Reader-luokan avulla.
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 ()); } } }
Lähtö:
ulostulo Huomautus: Varmista, että ohjelma toimii oikein, luomalla työhakemistoon tiedosto nimeltä example1.txt.
Lisää tiedostoon seuraava sisältö tai voit lisätä mitä tahansa tekstiä.
Hei tervetuloa Geeks for Geeks -palveluun
Tallenna tiedosto ja suorita ohjelma. Ohjelma lukee ja näyttää esimerkin 1 sisällön .txt lähtönä.
Lukijaluokan rakentajat
Java Reader Classin kanssa käytetään kahta konstruktoria, kuten alla mainitaan:
- suojattu lukija(): Luo uuden merkkivirran lukijan, jonka tärkeät osat synkronoidaan itse lukijaan.
- suojattu lukija (objektilukko) : Luo uuden merkkivirran lukijan, jonka tärkeät osat synkronoidaan annetun objektin kanssa.
Java Reader Classin menetelmät
| Menetelmä | Kuvaus |
|---|---|
| abstrakti void close() | Sulkee virran ja vapauttaa resursseja. |
| tyhjä merkki (int readAheadLimit) | Merkitsee nykyisen sijainnin streamissa. |
| Boolean markSupported() | Tarkistaa, tuetaanko merkintä/nollaustoimintoja. |
| int read() | Lukee yhden merkin streamista. Palauttaa -1, jos loppu saavutetaan. |
| int read(char[] cbuf) | Lukee useita merkkejä taulukkoon. |
| abstrakti int read(char[] cbuf int off int len) | Lukee osan taulukosta alkaen offsetista pituuden len. |
| int read (CharBuffer-kohde) | Lukee merkit CharBuffer-objektiin. |
| void reset() | Palauttaa streamin viimeisimpään merkkikohtaan. |
| pitkä ohitus (pitkä n) | Ohittaa määritetyn määrän merkkejä. |
Esimerkki: Alla oleva ohjelma esittelee Reader-luokan eri toimintojen toimintaa Javassa.
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 (); } }
Lähtö:
Lähtö Lukijakurssien toteuttaminen
Jotkut Reader-luokkien toteutuksista Javassa on mainittu alla:
- Puskuroitu Reader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader