Java-läsarklass
Reader-klassen i Java är en abstrakt klass för att läsa teckenströmmar. Dess underklasser ( FileReader Bufferad Läs ) tillhandahåller implementeringar med read() som huvudmetoden för att läsa tecken.
- Den implementerar det läsbara gränssnittet som definierar read(CharBuffer cb)-metoden.
- Den implementerar Closeable-gränssnittet som definierar close()-metoden för att frigöra resurser.
Läsare Deklaration av läsarklass
Deklaration av läsarklass ges nedan:
public abstract class Reader implementerar Läsbar Stängbar
Exempel: Läs en textfil tecken för tecken med klassen 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 ()); } } }
Utgång:
produktion Notera: För att säkerställa att programmet körs korrekt skapa en fil med namnet example1.txt i arbetskatalogen.
Lägg till följande innehåll i filen eller så kan du lägga till vilken text som helst.
Hej välkommen till Geeks for Geeks
Spara filen och kör programmet. Programmet kommer att läsa och visa innehållet i exempel1 .txt som utgång.
Konstruktörer av läsarklass
Det finns två konstruktörer som används med Java Reader Class som nämns nedan:
- skyddad läsare(): Skapar en ny teckenströmsläsare vars kritiska avsnitt kommer att synkroniseras på själva läsaren.
- skyddad läsare (objektlås) : Skapar en ny teckenströmsläsare vars kritiska avsnitt kommer att synkroniseras på det givna objektet.
Metoder för Java Reader Class
| Metod | Beskrivning |
|---|---|
| abstrakt void close() | Stänger strömmen och släpper resurser. |
| void mark (int readAheadLimit) | Markerar den aktuella positionen i strömmen. |
| boolean markSupported() | Kontrollerar om markerings-/återställningsåtgärder stöds. |
| int read() | Läser ett enstaka tecken från strömmen. Returnerar -1 om slutet nås. |
| int read(char[] cbuf) | Läser flera tecken i en array. |
| abstrakt int read(char[] cbuf int off int len) | Läser en del av arrayen med start vid offset off för längd len. |
| int read(CharBuffer-mål) | Läser tecken i ett CharBuffer-objekt. |
| void reset() | Återställer strömmen till den senaste markeringspositionen. |
| långt hoppa (långt n) | Hoppa över det angivna antalet tecken. |
Exempel: Nedanstående program visar hur olika funktioner i Reader-klassen fungerar i 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 (); } }
Produktion:
Produktion Genomförande av läsarklasser
Några av implementeringarna av Reader-klasser i Java nämns nedan:
- Bufferad Reader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader