Diferencia entre InputStream y OutputStream en Java

Una secuencia se puede definir como la secuencia de datos o el flujo continuo de datos. Los flujos son una forma clara de lidiar con la entrada/salida. Los flujos son de dos tipos, como se muestra a continuación:

Stream in Java

En el diagrama anterior, nuestro InputStream y OutputStream residirán en Byte Stream. Entonces, analicemos el flujo de bytes.

1. Byte Stream: Byte Stream proporciona una forma conveniente de manejar la entrada y salida de bytes. El flujo de bytes se divide en varias clases, pero las Clases de jerarquía superior se muestran a continuación: 

ByteStream in Java

1.1 InputStream: InputStream es una clase abstracta de Byte Stream que describe la entrada de flujo y se usa para leer y podría ser un archivo, imagen, audio, video, página web, etc., no importa. Por lo tanto, InputStream lee los datos de la fuente un elemento a la vez.

Input Stream in Java

1.2 OutputStream: OutputStream es una clase abstracta de Byte Stream que describe la salida del flujo y se usa para escribir datos en un archivo, imagen, audio, etc. Por lo tanto, OutputStream escribe datos en el destino uno a la vez.

OutputStream in Java

Diferencia entre InputStream y OutputStream

                      Flujo de entrada                                                                                                                        Salida de corriente                                                                                
1. Es una clase abstracta que describe Stream Input. 1. Es una clase abstracta que describe Stream Output.
2. InputStream Lea los datos de la fuente una vez a la vez. 2. OutputStream Escribir datos en el destino de uno en uno.

3. InputStream consta de un método que realiza:

  • Lea el siguiente byte de datos del flujo de entrada y devuelva -1 al final del archivo: public abstract int read() lanza IOException
  • Cerrar InputStream actual: public int available() lanza IOException
  • Devuelve una estimación del número de bytes que se pueden leer del flujo de entrada actual: public void close() lanza IOException

3. El flujo de salida consta de métodos que realizan:

  • Escriba un byte en el flujo de salida actual: public void write (int) lanza IOException
  • Escriba una array de bytes en el flujo de salida actual: public void write(byte[])throws IOException
  • Vacía el OutputStream actual: public void flush() lanza IOException
  • Cierra el flujo de salida actual. : public void close() lanza IOException

4. Los tipos de InputStream son:

  • FileInputStream
  • ByteArrayInputStream
  • FilterInputStream
  • ObjetoEntradaStream

En estos tipos, el tipo más importante y más utilizado es FileInputStream.

4. Los tipos de OutputStream son:

  • FileOutputStream
  • ByteArrayOutputStream
  • FilterOutputStream
  • ObjectOutputStreamObjectOutputStream

En estos tipos, el tipo más importante y más utilizado es FileOutput Stream.

Programa para InputStream:

En este Programa, el archivo gfg.txt consiste en “GEEKSFORGEEKS” .

Nota: En el archivo se guarda en la misma ubicación donde se guarda el programa java, luego siga el programa a continuación. Si el archivo se guarda en una ubicación específica, escriba los detalles como.

FileInputStream fileIn=new FileInputStream("C:\\gfg.txt"); 

Java

// Imported to use methods
import java.io.FileInputStream;
  
// Main Class
public class InputStreamExample {
    public static void main(String args[])
    {
        // Reading from Source file
        try {
            FileInputStream fileIn
                = new FileInputStream("gfg.txt");
            int i = 0;
            while ((i = fileIn.read()) != -1) {
                System.out.print((char)i);
            }
            fileIn.close();
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

Producción:

GEEKSFORGEEKS 

Programa para OutputStream

Aquí el archivo gfg.txt está vacío y guardado en la misma ubicación donde se guarda el programa Java. Este programa escribe GeeksforGeeks en el archivo vacío y muestra el mensaje «el archivo se actualizó correctamente» si el texto se escribe correctamente en el archivo.

Java

// Imported to use inbuilt methods
import java.io.FileOutputStream;
  
// Main class
public class OutputStreamExample {
    public static void main(String args[])
    {
        // Writing in file gfg.txt
        try {
            FileOutputStream fileOut
                = new FileOutputStream("gfg.txt");
            String s = "GeeksforGeeks";
  
            // converting string into byte array
            byte b[] = s.getBytes();
            fileOut.write(b);
            fileOut.close();
            System.out.println(
                "file is successfully updated!!");
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

Producción:

file is successfully updated!!

Cuando volvemos a leer el archivo usando el primer programa, se muestra a continuación:

GeeksforGeeks

Publicación traducida automáticamente

Artículo escrito por jagroopofficial 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 *