Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Clase Java InputStreamReader

Clase Java InputStreamReader

En este tutorial, aprenderemos sobre Java InputStreamReader y sus métodos con la ayuda de ejemplos.

El InputStreamReader clase del java.io El paquete se puede usar para convertir datos en bytes en datos en caracteres.

Extiende la clase abstracta Reader .

El InputStreamReader la clase funciona con otros flujos de entrada. También se conoce como un puente entre flujos de bytes y flujos de caracteres. Esto se debe a que el InputStreamReader lee bytes del flujo de entrada como caracteres.

Por ejemplo, algunos caracteres requerían 2 bytes para almacenarse en el almacenamiento. Para leer dichos datos, podemos usar el lector de flujo de entrada que lee los 2 bytes juntos y los convierte en el carácter correspondiente.


Crear un InputStreamReader

Para crear un InputStreamReader , debemos importar el java.io.InputStreamReader paquete primero. Una vez que importamos el paquete, aquí es cómo podemos crear el lector de flujo de entrada.

// Creates an InputStream
FileInputStream file = new FileInputStream(String path);

// Creates an InputStreamReader
InputStreamReader input = new InputStreamReader(file);

En el ejemplo anterior, hemos creado un InputStreamReader llamado entrada junto con el FileInputStream llamado archivo .

Aquí, los datos en el archivo se almacenan utilizando alguna codificación de caracteres predeterminada.

Sin embargo, podemos especificar el tipo de codificación de caracteres (UTF8 o UTF16 ) en el archivo también.

// Creates an InputStreamReader specifying the character encoding
InputStreamReader input = new InputStreamReader(file, Charset cs);

Aquí, hemos usado el Charset class para especificar la codificación de caracteres en el archivo.


Métodos de InputStreamReader

El InputStreamReader La clase proporciona implementaciones para diferentes métodos presentes en el Reader clase.

método read()

Por ejemplo, supongamos que tenemos un archivo llamado input.txt con el siguiente contenido.

This is a line of text inside the file.

Intentemos leer este archivo usando InputStreamReader .

import java.io.InputStreamReader;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    // Creates an array of character
    char[] array = new char[100];

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader
      InputStreamReader input = new InputStreamReader(file);

      // Reads characters from the file
      input.read(array);
      System.out.println("Data in the stream:");
      System.out.println(array);

      // Closes the reader
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Salida

Data in the stream:
This is a line of text inside the file.

En el ejemplo anterior, hemos creado un lector de flujo de entrada utilizando el flujo de entrada de archivos. El lector de flujo de entrada está vinculado con el archivo input.txt .

 FileInputStream file = new FileInputStream("input.txt");
 InputStreamReader input = new InputStreamReader(file);

Para leer caracteres del archivo, hemos usado el read() método.


Método getEncoding()

El getEncoding() El método se puede usar para obtener el tipo de codificación que se usa para almacenar datos en el flujo de entrada. Por ejemplo,

import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader with default encoding
      InputStreamReader input1 = new InputStreamReader(file);

      // Creates an InputStreamReader specifying the encoding
      InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8"));

      // Returns the character encoding of the input stream
      System.out.println("Character encoding of input1: " + input1.getEncoding());
      System.out.println("Character encoding of input2: " + input2.getEncoding());

      // Closes the reader
      input1.close();
      input2.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Salida

The character encoding of input1: Cp1252
The character encoding of input2: UTF8

En el ejemplo anterior, hemos creado 2 lectores de flujo de entrada llamados input1 y entrada2 .

Nota :Hemos utilizado el Charset.forName() método para especificar el tipo de codificación de caracteres. Para obtener más información, visite Java Charset (documentación oficial de Java).


Método cerrar()

Para cerrar el lector de flujo de entrada, podemos usar el close() método. Una vez que el close() se llama al método, no podemos usar el lector para leer los datos.


Otros métodos de InputStreamReader

Método Descripción
ready() comprueba si la transmisión está lista para ser leída
mark() marcar la posición en la secuencia hasta la que se han leído los datos
reset() devuelve el control al punto de la secuencia donde se estableció la marca

Para obtener más información, visite Java InputStreamReader (documentación oficial de Java).


Java

  1. Palabra clave final de Java
  2. Operador de instancia de Java
  3. Herencia de Java
  4. Clase estática anidada de Java
  5. Clase anónima de Java
  6. Clase única de Java
  7. Reflexión Java
  8. Clase Java ObjectOutputStream
  9. Clase de escáner Java
  10. Genéricos de Java
  11. Clase de archivo Java