Classe de lecteur Java
La classe Reader en Java est un classe abstraite pour lire les flux de caractères. Ses sous-classes ( Lecteur de fichiers Lecture tampon ) fournissent des implémentations avec read() étant la méthode principale pour lire les caractères.
- Il implémente l'interface Readable qui définit la méthode read(CharBuffer cb).
- Il implémente l'interface Closeable qui définit la méthode close() pour libérer des ressources.
Lecteur Déclaration de classe de lecteur
La déclaration de la classe Reader est donnée ci-dessous :
classe abstraite publique Reader implémente Readable Closeable
Exemple: Lisez un fichier texte caractère par caractère à l'aide de la classe 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 ()); } } }
Sortir :
sortir Note: Pour garantir que le programme fonctionne correctement, créez un fichier nommé exemple1.txt dans le répertoire de travail.
Ajoutez le contenu suivant au fichier ou vous pouvez ajouter n'importe quel texte.
Bonjour, bienvenue sur Geeks pour Geeks
Enregistrez le fichier et exécutez le programme. Le programme lira et affichera le contenu de l'exemple 1 .txt comme sortie.
Constructeurs de classe Reader
Il existe deux constructeurs utilisés avec Java Reader Class, comme mentionné ci-dessous :
- Lecteur protégé() : Crée un nouveau lecteur de flux de caractères dont les sections critiques seront synchronisées sur le lecteur lui-même.
- Lecteur protégé (verrouillage d'objet) : Crée un nouveau lecteur de flux de caractères dont les sections critiques se synchroniseront sur l'objet donné.
Méthodes de la classe Java Reader
| Méthode | Description |
|---|---|
| résumé vide fermer() | Ferme le flux et libère les ressources. |
| marque vide (int readAheadLimit) | Marque la position actuelle dans le flux. |
| booléen markSupported() | Vérifie si les opérations de marquage/réinitialisation sont prises en charge. |
| int lire() | Lit un seul caractère du flux. Renvoie -1 si la fin est atteinte. |
| int lire (char[] cbuf) | Lit plusieurs caractères dans un tableau. |
| résumé int read(char[] cbuf int off int len) | Lit une partie du tableau en commençant par le décalage pour une longueur len. |
| int lire (cible CharBuffer) | Lit les caractères dans un objet CharBuffer. |
| annuler la réinitialisation() | Réinitialise le flux à la position de marque la plus récente. |
| long saut (long n) | Ignore le nombre spécifié de caractères. |
Exemple: Le programme ci-dessous démontre le fonctionnement de diverses fonctionnalités de la classe Reader en 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 (); } }
Sortir:
Sortir Implémentation de classes de lecteurs
Certaines des implémentations des classes Reader en Java sont mentionnées ci-dessous :
- BufferedReader
- CharArrayReader
- Lecteur de filtre
- Lecteur de flux d'entrée
- Lecteur canalisé
- Lecteur de chaînes