English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Arreglo

Java Orientación a Objetos (I)

Java Orientación a Objetos (II)

Java Orientación a Objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (Cola)

Conjuntos de Mapa de Java

Conjuntos de Java

Java Entrada/Salida (I)/O)

Reader de Java/Writer

Otras temáticas de Java

Java InputStream 类

En este tutorial, aprenderemos sobre la clase InputStream de Java y sus métodos a través de un ejemplo.

La clase InputStream en el paquete java.io es una superclase abstracta que representa un flujo de entrada de bytes.

Dado que InputStream es una clase abstracta, no tiene uso por sí mismo. Sin embargo, sus subclases se pueden usar para leer datos.

Subclases de InputStream

Para utilizar las funciones de InputStream, podemos usar sus subclases. Sus subclases incluyen:

En el siguiente tutorial, aprenderemos todos estos subclases.

Crear un InputStream

Para crear un InputStream, debemos primero importar el paquete java.io.InputStream. Después de importar el paquete, podemos crear el flujo de entrada.

// Crear un InputStream
InputStream object1 = new FileInputStream();

Aquí, creamos un flujo de entrada utilizando FileInputStream. Esto se debe a que InputStream es una clase abstracta. Por lo tanto, no podemos crear objetos InputStream.

Nota: También podemos crear flujos de entrada desde otros subclases de InputStream.

Métodos de InputStream

La clase InputStream proporciona diferentes métodos implementados por sus subclases. A continuación se presentan algunos métodos comunes

  • read(); - Leer un byte de datos desde el flujo de entrada

  • read(byte[] array); - Leer bytes desde el flujo y almacenarlos en el array especificado

  • available(); - Devolver el número de bytes disponibles en el flujo de entrada

  • mark(); - Marcar la posición de los datos en el flujo de entrada

  • reset(); -Devolver el punto de control al punto en el que se estableció el marcador

  • markSupported();- Comprobar si el flujo admite los métodos mark() y reset()

  • skips(); - Saltar y descartar el número especificado de bytes en el flujo de entrada

  • close(); - Cerrar el flujo de entrada

Ejemplo: Uso de InputStream con FileInputStream

A continuación se muestra la implementación del método InputStream utilizando la clase FileInputStream.

Supongamos que tenemos un archivo llamadoinput.txtEl archivo, que contiene el siguiente contenido.

Esta es una línea de texto en el archivo.

Vamos a intentar usar FileInputStream (subclase de InputStream) para leer este archivo.

import java.io.FileInputStream;
import java.io.InputStream;
public class Main {
    public static void main(String args[]) {
        byte[] array = new byte[100];
        try {
            InputStream input = new FileInputStream("input.txt");
            System.out.println("Bytes disponibles en el archivo:"); + input.available());
            //Leer bytes desde el flujo de entrada
            input.read(array);
            System.out.println("Leer datos desde archivo:");
            //Convertir el array de bytes a una cadena
            String data = new String(array);
            System.out.println(data);
            //Cerrar el flujo de entrada
            input.close();
        }
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

Resultado de salida

Bytes disponibles en el archivo: 35
Datos leídos del archivo:
Esta es una línea de texto en el archivo.

En el ejemplo anterior, creamos un flujo de entrada usando la clase FileInputStream. El flujo de entrada está asociado con un archivoinput.txtenlace.

InputStream input = new FileInputStream("input.txt");

Para obtenerinput.txtLeer datos de un archivo, hemos implementado estos métodos.

input.read(array);      //Leer datos del flujo de entrada
input.close();             //Cerrar el flujo de entrada