Klasa czytnika Java
Klasa Reader w Javie to klasa abstrakcyjna do odczytywania strumieni znaków. Jego podklasy ( Czytnik plików Buforowany odczyt ) zapewniają implementacje, w których read() jest główną metodą odczytu znaków.
- Implementuje interfejs Readable, który definiuje metodę read(CharBuffer cb).
- Implementuje interfejs Closeable, który definiuje metodę close() w celu zwolnienia zasobów.
Czytelnik Deklaracja klasy czytelnika
Deklarację klasy Reader podano poniżej:
publiczna klasa abstrakcyjna Reader implementuje Readable Closeable
Przykład: Czytaj plik tekstowy znak po znaku, korzystając z klasy 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 ()); } } }
Wyjście :
wyjście Notatka: Aby mieć pewność, że program działa poprawnie, utwórz plik o nazwie example1.txt w katalogu roboczym.
Dodaj następującą treść do pliku lub możesz dodać dowolny tekst.
Witamy w Geeks for Geeks
Zapisz plik i uruchom program. Program odczyta i wyświetli zawartość przykładu 1 .txt jako wyjście.
Konstruktorzy klasy Reader
Istnieją dwa konstruktory używane z klasą Java Reader, jak wspomniano poniżej:
- chroniony czytnik(): Tworzy nowy czytnik strumienia znaków, którego sekcje krytyczne zostaną zsynchronizowane w samym czytniku.
- chroniony czytnik (blokada obiektu) : Tworzy nowy czytnik strumienia znaków, którego sekcje krytyczne zostaną zsynchronizowane z danym obiektem.
Metody klasy czytnika Java
| Metoda | Opis |
|---|---|
| abstrakcyjna pustka zamknij() | Zamyka strumień i zwalnia zasoby. |
| pusty znak (int readAheadLimit) | Oznacza bieżącą pozycję w strumieniu. |
| znak logicznySupported() | Sprawdza, czy obsługiwane są operacje zaznaczania/resetowania. |
| int czytać() | Odczytuje pojedynczy znak ze strumienia. Zwraca -1, jeśli osiągnięto koniec. |
| int odczyt(char[] cbuf) | Odczytuje wiele znaków do tablicy. |
| streszczenie int read(char[] cbuf int off int len) | Odczytuje część tablicy, zaczynając od offsetu off dla długości len. |
| int odczyt (cel CharBuffer) | Odczytuje znaki do obiektu CharBuffer. |
| nieważne resetowanie() | Resetuje strumień do ostatniej pozycji znacznika. |
| długi przeskok (długi n) | Pomija określoną liczbę znaków. |
Przykład: Poniższy program demonstruje działanie różnych funkcjonalności klasy Reader w Javie.
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 (); } }
Wyjście:
Wyjście Implementacja klas czytników
Poniżej wymieniono niektóre implementacje klas Reader w Javie:
- Buforowany czytnik
- Czytnik CharArray
- Czytnik filtrów
- Czytnik strumienia wejściowego
- Czytnik Piped
- Czytnik ciągów