Java Okuyucu Sınıfı
Java'daki Reader sınıfı bir soyut sınıf karakter akışlarını okumak için. Alt sınıfları ( Dosya Okuyucu TamponlanmışOkuma ) karakterleri okumak için ana yöntemin read() olduğu uygulamalar sağlar.
- Read(CharBuffer cb) yöntemini tanımlayan Okunabilir arayüzü uygular.
- Kaynakları serbest bırakmak için close() yöntemini tanımlayan Closeable arayüzünü uygular.
Okuyucu Okuyucu Sınıfı Bildirgesi
Reader sınıfının bildirimi aşağıda verilmiştir:
genel soyut sınıf Reader, Okunabilir Kapatılabilir'i uygular
Örnek: Reader sınıfını kullanarak bir metin dosyasını karakter karakter okuyun.
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 ()); } } }
Çıkış:
çıktı Not: Programın doğru çalıştığından emin olmak için çalışma dizininde example1.txt adında bir dosya oluşturun.
Aşağıdaki içeriği dosyaya ekleyin veya herhangi bir metni ekleyebilirsiniz.
Merhaba Geeks için Geeks'e hoş geldiniz
Dosyayı kaydedin ve programı çalıştırın. Program, örnek1'in içeriğini okuyacak ve görüntüleyecektir. .txt çıktı olarak.
Reader Sınıfının Yapıcıları
Aşağıda belirtildiği gibi Java Reader Class ile kullanılan iki kurucu vardır:
- korumalı Okuyucu(): Kritik bölümleri okuyucunun kendisi üzerinde senkronize edilecek yeni bir karakter akışı okuyucusu oluşturur.
- korumalı Okuyucu (Nesne kilidi) : Kritik bölümleri verilen nesne üzerinde senkronize edilecek yeni bir karakter akışı okuyucusu oluşturur.
Java Reader Sınıfının Yöntemleri
| Yöntem | Tanım |
|---|---|
| soyut void close() | Akışı kapatır ve kaynakları serbest bırakır. |
| geçersiz işaret(int readAheadLimit) | Akıştaki geçerli konumu işaretler. |
| boolean markDesteklenen() | İşaretleme/sıfırlama işlemlerinin desteklenip desteklenmediğini kontrol eder. |
| int okuma() | Akıştan tek bir karakter okur. Sona ulaşılırsa -1 değerini döndürür. |
| int okuma(char[] cbuf) | Bir diziye birden çok karakter okur. |
| abstract int read(char[] cbuf int off int len) | Uzunluk uzunluğu için uzaklıktan başlayarak dizinin bir kısmını okur. |
| int read(CharBuffer hedefi) | Karakterleri bir CharBuffer nesnesine okur. |
| geçersiz sıfırlama() | Akışı en son işaret konumuna sıfırlar. |
| uzun atlama(uzun n) | Belirtilen sayıda karakteri atlar. |
Örnek: Aşağıdaki program, Java'daki Reader sınıfının çeşitli işlevlerinin çalışmasını göstermektedir.
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 (); } }
Çıkış:
Çıkış Okuyucu Sınıflarının Uygulanması
Java'daki Reader sınıflarının bazı uygulamaları aşağıda belirtilmiştir:
- Tamponlu Okuyucu
- Karakter Dizisi Okuyucusu
- Filtre Okuyucu
- Giriş Akışı Okuyucusu
- Borulu Okuyucu
- Dize Okuyucu