Java olvasó osztály
A Java Reader osztály egy absztrakt osztály karakterfolyamok olvasásához. Az alosztályai ( FileReader BufferedReade ) olyan implementációkat biztosít, amelyeknél az read() a karakterek olvasásának fő módszere.
- Megvalósítja az Olvasható felületet, amely meghatározza a read(CharBuffer cb) metódust.
- Megvalósítja a Closeable felületet, amely meghatározza a close() metódust az erőforrások felszabadításához.
Olvasó Nyilatkozat az olvasói osztályról
Az olvasói osztály nyilatkozata az alábbiakban található:
public abstract class Reader valósítja meg Readable Closeable
Példa: Olvassa el a szövegfájlt karakterenként a Reader osztály segítségével.
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 ()); } } }
Kimenet:
kimenet Jegyzet: A program megfelelő futásának biztosítása érdekében hozzon létre egy example1.txt nevű fájlt a munkakönyvtárban.
Adja hozzá a következő tartalmat a fájlhoz, vagy hozzáadhat bármilyen szöveget.
Üdvözöljük a Geeks for Geeks oldalán
Mentse el a fájlt és futtassa a programot. A program beolvassa és megjeleníti az example1 tartalmát .txt kimenetként.
Az olvasói osztály építői
A Java Reader Class két konstruktort használ, amint azt alább említettük:
- védett olvasó(): Létrehoz egy új karakterfolyam-olvasót, amelynek kritikus részei szinkronizálódnak magával az olvasóval.
- védett olvasó (objektumzár) : Létrehoz egy új karakterfolyam-olvasót, amelynek kritikus részei szinkronizálódnak az adott objektumon.
A Java Reader osztály módszerei
| Módszer | Leírás |
|---|---|
| absztrakt üres bezárás() | Bezárja az adatfolyamot és felszabadítja az erőforrásokat. |
| üres jel (int readAheadLimit) | Megjelöli az aktuális pozíciót az adatfolyamban. |
| logikai markSupported() | Ellenőrzi, hogy a kijelölés/visszaállítás műveletek támogatottak-e. |
| int read() | Egyetlen karaktert olvas be az adatfolyamból. -1-et ad vissza, ha elérjük a végét. |
| int read(char[] cbuf) | Több karaktert beolvas egy tömbbe. |
| absztrakt int read(char[] cbuf int off int len) | Beolvassa a tömb egy részét a len hosszúság eltolásától kezdve. |
| int read (CharBuffer cél) | Beolvassa a karaktereket egy CharBuffer objektumba. |
| void reset() | Visszaállítja az adatfolyamot a legutóbbi jelölés pozíciójára. |
| hosszú kihagyás (hosszú n) | Kihagyja a megadott számú karaktert. |
Példa: Az alábbi program bemutatja a Reader osztály különféle funkcióinak működését Java nyelven.
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 (); } }
Kimenet:
Kimenet Olvasóosztályok megvalósítása
Az alábbiakban megemlítjük a Reader osztályok Java-beli megvalósításait:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader