Clase InputStreamReader en Java – Part 1

InputStreamReader class

Un InputStreamReader es un puente entre flujos de bytes y flujos de caracteres . Lee bytes y los decodifica en caracteres utilizando un juego de caracteres específico. El juego de caracteres que utiliza se puede especificar por nombre o se puede dar explícitamente, o se puede aceptar el juego de caracteres predeterminado de la plataforma. 
Declaración : 

public class InputStreamReader
   extends Reader

Constructores : 

  • InputStreamReader(InputStream in_strm) : crea un InputStreamReader que utiliza el conjunto de caracteres predeterminado.
  • InputStreamReader(InputStream in_strm, Charset cs): crea un InputStreamReader que usa el juego de caracteres dado.
  • InputStreamReader(InputStream in_strm, CharsetDecoder dec): crea un InputStreamReader que usa el decodificador de juego de caracteres dado.
  • InputStreamReader(InputStream in_strm, String charsetName) : Crea un InputStreamReader que usa el juego de caracteres nombrado

Métodos: 

  • ready() : java.io.InputStreamReader.ready() indica si el flujo de caracteres está listo para ser leído o no. Un InputStreamReader está listo si su búfer de entrada no está vacío o si hay bytes disponibles para leer desde el flujo de bytes subyacente. 
    Sintaxis: 
public boolean ready()
Returns :
True : if the Character stream is ready to be read
False : if the Character stream is not ready to be read
  • close() : java.io.InputStreamReader.close() cierra InputStreamReader y libera todos los flujos asociados con él. Una vez que se ha cerrado la secuencia, las invocaciones adicionales de read(), ready(), mark(), reset() o skip() arrojarán una IOException. 
    Sintaxis: 
public void close()
Returns :
No value is returned
  • Implementación de los métodos ready() y close() : 

Java

// Java program illustrating ready() and close() method
 
import java.io.*;
public class NewClass
{
    public static void main(String[] args)
    {
 
        try
        {
            // initializing FileInputStream
            FileInputStream geek = new FileInputStream("ABC.txt");
 
            // Initializing InputStreamReader object
            InputStreamReader in_strm = new InputStreamReader(geek);
 
            int t;
            while((t=in_strm.read())!= -1)
            {
                // convert the integer true to character
                char r = (char)t;
                System.out.println("Character : "+r);
 
                // check if the stream in_strm ready
                boolean b = in_strm.ready();
                // Use of ready() methods
                System.out.println("Ready? : "+b);
 
            }
             
            // Use of close() method to Close InputStreamReader
            in_strm.close();
             
            // Closing FileInputStream
            geek.close();
        }
        catch (FileNotFoundException fnfe)
        {
            System.out.println("NO Such File Exists");
        }
        catch (IOException except)
        {
            System.out.println("IOException occurred");
        }
    }
}
  • Nota: 
    todos los programas de este artículo no se ejecutarán en IDE en línea ya que no existe ningún archivo ‘ABC’. Puede verificar este código en el compilador de Java en su sistema. 
    Para verificar este código, cree un archivo ‘ABC’ en su sistema. 
    El archivo ‘ABC’ contiene: 
    Geeks 
    For 
    Geeks 
    Salida: 
Character : G
Ready? : true
Character : e
Ready? : true
Character : e
Ready? : true
Character : k
Ready? : true
Character : s
Ready? : true
Character :  
Ready? : true
Character : 
Ready? : true
Character : 

Ready? : true
Character : F
Ready? : true
Character : o
Ready? : true
Character : r
Ready? : true
Character :  
Ready? : true
Character : 
Ready? : true
Character : 

Ready? : true
Character : G
Ready? : true
Character : e
Ready? : true
Character : e
Ready? : true
Character : k
Ready? : true
Character : s
Ready? : false
  • getEncoding() : java.io.InputStreamReader.getEncoding() devuelve el nombre de la codificación de caracteres que utiliza este flujo. 
    Sintaxis: 
public String getEncoding()
Parameters : 
Returns :
No value is returned
  • Implementación del método getEncoding() : 

Java

// Java program illustrating getEncoding() method
 
import java.io.*;
public class NewClass
{
    public static void main(String[] args)
    {
 
        try
        {
            // initializing FileInputStream
            FileInputStream geek = new FileInputStream("ABC.txt");
 
            // Initializing InputStreamReader object
            InputStreamReader in_strm = new InputStreamReader(geek);
 
            // Use of getEncoding() method
            // to get the character encoding present in the stream
            String encoding = in_strm.getEncoding();
 
            System.out.println("Encoding used : "+encoding);
 
            // Closing InputStreamReader
            in_strm.close();
             
            // Closing FileInputStream
            geek.close();
        }
        catch (FileNotFoundException fnfe)
        {
            System.out.println("NO Such File Exists");
        }
        catch (IOException except)
        {
            System.out.println("IOException occurred");
        }
    }
}
  • Producción : 
Encoding used : UTF8
  • read() : java.io.InputStreamReader.read() Devuelve un solo carácter después de leer. 
    Sintaxis: 
public int read()
Returns :
Returns single character after reading or -1 if the end of the stream has been reached
  • Implementación: 

Java

// Java program illustrating read() method
 
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws FileNotFoundException, IOException
    {
 
        // initializing FileInputStream
        FileInputStream geek = new FileInputStream("ABC.txt");
 
        // Initializing InputStreamReader object
        InputStreamReader in_strm = new InputStreamReader(geek);
 
        int t;
        String read_reslt="";
 
        // Use of read() method
        while((t = in_strm.read()) != -1)
        {
            read_reslt = read_reslt+(char)t;
        }
     
        // print the result read from the file
        System.out.println(read_reslt);
    }
}
  • Nota: 
    el archivo ‘ABC’ contiene: 

    Geeks 

    para 

    Geeks 
    Salida: 
1
Geeks 
2
For 
3
Geeks
  • 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 *