Java lasītāju klase
Reader klase Java ir abstraktā klase rakstzīmju straumju lasīšanai. Tās apakšklases ( FileReader BufferedReade ) nodrošina implementācijas, kurās read() ir galvenā rakstzīmju lasīšanas metode.
- Tas ievieš lasāmo saskarni, kas definē lasīšanas (CharBuffer cb) metodi.
- Tas ievieš Closeable saskarni, kas definē close() metodi resursu atbrīvošanai.
Lasītājs Lasītāju klases deklarācija
Lasītāju klases deklarācija ir dota zemāk:
public abstract class Reader ievieš Readable Closeable
Piemērs: Lasiet teksta failu rakstzīmi pēc rakstzīmes, izmantojot Reader klasi.
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 ()); } } }
Izvade:
izvade Piezīme: Lai nodrošinātu programmas pareizu darbību, darba direktorijā izveidojiet failu ar nosaukumu example1.txt.
Pievienojiet failam šādu saturu vai varat pievienot jebkuru tekstu.
Sveiki, laipni lūdzam Geeks for Geeks
Saglabājiet failu un palaidiet programmu. Programma nolasīs un parādīs 1. piemēra saturu .txt kā izvade.
Lasītāju klases konstruktori
Kopā ar Java Reader Class tiek izmantoti divi konstruktori, kā minēts tālāk:
- aizsargāts lasītājs (): Izveido jaunu rakstzīmju straumes lasītāju, kura kritiskās sadaļas tiks sinhronizētas ar pašu lasītāju.
- aizsargāts lasītājs (objekta bloķēšana) : izveido jaunu rakstzīmju straumes lasītāju, kura kritiskās sadaļas tiks sinhronizētas ar doto objektu.
Java Reader klases metodes
| Metode | Apraksts |
|---|---|
| abstrakts tukšums aizvērt () | Aizver straumi un atbrīvo resursus. |
| tukšuma atzīme (int readAheadLimit) | Atzīmē pašreizējo pozīciju straumē. |
| Būla atzīmeSupported() | Pārbauda, vai tiek atbalstītas atzīmēšanas/atiestatīšanas darbības. |
| int lasīt () | Nolasa vienu rakstzīmi no straumes. Atgriež -1, ja ir sasniegts beigas. |
| int lasīt (char[] cbuf) | Nolasa vairākas rakstzīmes masīvā. |
| abstract int read(char[] cbuf int off int len) | Nolasa masīva daļu, sākot ar nobīdi garuma len. |
| int lasīt (CharBuffer mērķis) | Nolasa rakstzīmes CharBuffer objektā. |
| nevar atiestatīt () | Atiestata straumi uz jaunāko atzīmes pozīciju. |
| garš izlaidums (garš n) | Izlaiž norādīto rakstzīmju skaitu. |
Piemērs: Zemāk esošā programma demonstrē dažādu Reader klases funkcionalitātes darbību 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 (); } }
Izvade:
Izvade Lasītāju nodarbību īstenošana
Tālāk ir minētas dažas Reader klašu ieviešanas Java valodā:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader