Clase Java.io.CharArrayReader en Java

CharArrayReader Class in Java

La clase java.io.CharArrayReader crea un búfer de caracteres utilizando una array de caracteres.

Declaración: 

public class CharArrayReader
   extends Reader

Constructor:  

  • CharArrayReader(char[] char_array) : Crea un CharArrayReader a partir de una array de caracteres específica.
  • CharArrayReader(char[] char_array, int offset, int maxlen) : crea un CharArrayReader a partir de una parte específica de la array de caracteres.

Métodos:  

  • read() : java.io.CharArrayReader.read() lee un solo carácter y devuelve -1 si se alcanza el final de la secuencia. 
    Sintaxis: 
public int read()
Parameters : 
-----------
Return  :
Returns read character as an integer ranging from range 0 to 65535.
-1 : when end of file is reached.
  • read(char[] char_array, int offset, int maxlen) : java.io.CharArrayReader.read(char[] char_array, int offset, int maxlen)) lee un solo carácter y devuelve -1 si se alcanza el final de la secuencia 
    Sintaxis : 
public int read(char[] char_array, int offset, int maxlen))
Parameters : 
char_array : destination array  
offset : starting position from where to store characters
maxlen : maximum no. of characters to be read
Return  :
Returns all the characters read
-1 : when end of file is reached.
  • ready() : java.io.CharArrayReader.ready() comprueba si el Stream está listo para ser leído o no. 
    CharArrayReader siempre están listos para ser leídos. 
    Sintaxis: 
public boolean ready()
Parameters : 
-----------
Return  :
true if CharArrayReader is ready to be read.
  • skip(long char) : java.io.CharArrayReader.skip(long char_no) salta ‘char_no’ no. de personajes Si n es negativo, entonces este método no hace nada y devuelve 0. 
    Sintaxis: 
public long skip(long char)
Parameters : 
char_no : char no. of characters to be skipped
Return  :
no. of characters skipped
Exception : 
IOException : In case of I/O error occurs

Java

// Java program illustrating the working of CharArrayReader class methods
// read(), skip(), ready()
// read(char[] char_array, int offset, int maxlen)
 
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
 
        // Initializing the character array
        char[] geek = {'G', 'E', 'E', 'K', 'S'};
 
        // Initializing the char_array
        CharArrayReader char_array1 = new CharArrayReader(geek);
        CharArrayReader char_array2 = new CharArrayReader(geek);
 
        // Use of ready() method
        boolean check1 = char_array1.ready();
        if(check1 ==true)
            System.out.println("char_array1 is ready");
        else
            System.out.println("char_array1 is not ready");
 
 
        int a = 0;
        System.out.print("Use of read() method : ");
        // Use of read() method : reading each character one by one
        while((a = char_array1.read()) != -1)
        {
            char c1 = (char)a;
            System.out.println(c1);
 
            // Use of skip() method
            long char_no = char_array1.skip(1);
            System.out.println("Characters Skipped : "+(c1+1));
 
        }
        System.out.println("");
 
 
        // Use of ready() method
        boolean check2 = char_array2.ready();
        if(check2 ==true)
            System.out.println("char_array2 is ready");
        else
            System.out.println("char_array2 is not ready");
 
 
  // Use of read(char[] char_array, int offset, int maxlen) : reading a part of array
        char_array2.read(geek, 1, 2);
 
        int b = 0;
 
  System.out.print("Use of read(char[] char_array, int offset, int maxlen) method : ");
 
        while((b = char_array2.read()) != -1)
        {
            char c2 = (char)b;
            System.out.print(c2);
        }
 
    }
}

Producción : 

char_array1 is ready
Use of read() method : G
Characters Skipped : 72
E
Characters Skipped : 70
S
Characters Skipped : 84

char_array2 is ready
Use of read(char[] char_array, int offset, int maxlen) method : EKS
  • mark(int readLimit) : java.io.CharArrayReader.mark(int readLimit) marca la posición actual en el Stream hasta el cual se puede leer el carácter. Este método siempre invoca el método reset(). Las llamadas subsiguientes a reset() reposicionarán la transmisión a este punto. 
    Sintaxis: 
public long mark(int readLimit)
Parameters : 
readLimit : No. of characters that can be read up to the mark
Return  :
void
Exception : 
IOException : In case of I/O error occurs
  • markSupported() : java.io.CharArrayReader.markSupported() indica si el flujo admite o no el método de marca. 
    Sintaxis: 
public boolean markSupported()
Parameters : 
-------
Return  :
true if the mark method is supported by the stream
Exception : 
IOException : In case of I/O error occurs
  • reset() : java.io.CharArrayReader.reset() Restablece la secuencia a la marca más reciente o al principio si nunca se ha marcado. 
    Sintaxis: 
public void reset()
Parameters : 
-------
Return  :
void
Exception : 
IOException : In case of I/O error occurs
  • close() : java.io.CharArrayReader.close() cierra la transmisión y reasigna los recursos que se le asignaron. 
    Sintaxis: 
public void close()
Parameters : 
-------
Return  :
void
Exception : 
IOException : In case of I/O error occurs

Java

// Java program illustrating the working of FilterInputStream method
// mark(), reset()
// markSupported(), close()
 
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws Exception
    {
        // Initializing CharArrayReader
        CharArrayReader char_array = null;
        char[] geek = {'H', 'E', 'L', 'L', 'O', 'G',  'E',  'E',  'K', 'S'};
 
        try
        {
            char_array = new CharArrayReader(geek);
 
            // read() method : reading and printing Characters
            // one by one
            System.out.println("Char : "+(char)char_array.read());
            System.out.println("Char : "+(char)char_array.read());
            System.out.println("Char : "+(char)char_array.read());
 
            // mark() : read limiting the 'geek' input stream
            char_array.mark(0);
 
            System.out.println("mark() method comes to play");
            System.out.println("Char : "+(char)char_array.read());
            System.out.println("Char : "+(char)char_array.read());
            System.out.println("Char : "+(char)char_array.read());
 
            // Use of markSupported() :
            boolean check = char_array.markSupported();
            if (check == true )
                System.out.println("mark() supported\n");
 
            if (char_array.markSupported())
            {
                // reset() method : repositioning the stream to
                // marked positions.
                char_array.reset();
                System.out.println("reset() invoked");
                System.out.println("Char : "+(char)char_array.read());
                System.out.println("Char : "+(char)char_array.read());
            }
            else
                System.out.println("mark() method not supported.");
             
        }
        catch(Exception excpt)
        {
            // in case of I/O error
            excpt.printStackTrace();
        }
        finally
        {
            // Use of close() : releasing the resources back to the
            // GarbageCollector when closes
            if(char_array != null)
                char_array.close();
        }
    }
}

Producción : 

Char : H
Char : E
Char : L
mark() method comes to play
Char : L
Char : O
Char : G
mark() supported

reset() invoked
Char : L
Char : O

Este artículo es una contribución de . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *