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.
Deklaration av läsarklass
Deklaration av läsarklass ges nedan:
tecken till int i java
public abstract class Reader implementerar Läsbar Stängbar
Exempel: Läs en textfil tecken för tecken med klassen 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()); } } }
Utgång:
i java regex
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.txtsom utgång.
Konstruktörer av läsarklass
Det finns två konstruktörer som används med Java Reader Class som nämns nedan:
Excel datum skillnad
- 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.
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(); } }
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