Clase Java.io.PipedOutputStream en Java

Clase Java.io.PipedInputStream en Java

io.PipedOutputStream class in Java

Las tuberías en IO proporcionan un enlace entre dos subprocesos que se ejecutan en JVM al mismo tiempo. Por lo tanto, las tuberías se utilizan como origen o como destino.  

  • PipedInputStream también se canaliza con PipedOutputStream. Por lo tanto, los datos se pueden escribir usando PipedOutputStream y se pueden escribir usando PipedInputStream. Pero, usar ambos subprocesos al mismo tiempo creará un punto muerto para los subprocesos.
  • PipedOutputStream está enviando el final de la canalización. Los datos se escriben en PipedOutputStream. Se dice que la tubería está rota si PipedInputStream, que estaba leyendo los datos, ya no existe.

Declaración:  

public class PipedOutputStream
  extends OutputStream

Constructor:  

  • PipedOutputStream() : crea un PipedOutputStream, que no está conectado.
  • PipedOutputStream(PipedOutputStream inStream) : crea un PipedOutputStream, que 
    está conectado a PipedInputStream – ‘inStream’.

Métodos: 

  • write() : java.io.PipedOutputStream.write(int byte) escribe un byte especificado en el flujo de salida canalizado. 
    Sintaxis: 
public void write(int byte)
Parameters : 
byte : byte to be written
Return :                                               
void
Exception :
-> IOException : if in case IO error occurs.
  • write(byte[] buffer, int offset, int maxlen) : java.io.PipedOutputStream.write(byte[] buffer, int offset, int maxlen) escribe maxlen bytes de los datos del búfer al flujo de salida canalizado. El método se bloquea si no se escriben bytes en Stream. 
    Sintaxis: 
public void write(byte[] buffer, int offset, int maxlen)
Parameters : 
buffer : data of the buffer
offset : starting in the destination array - 'buffer'.
maxlen : maximum length of array to be read
Return :                                               
void
Exception :
-> IOException : if in case IO error occurs.

Java

// Java program illustrating the working of PipedInputStream
// write(byte[] buffer, int offset, int maxlen)
 
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
        PipedInputStream geek_input = new PipedInputStream();
        PipedOutputStream geek_output = new PipedOutputStream();
 
        // Use of connect() : connecting geek_input with geek_output
        geek_input.connect(geek_output);
 
        byte[] buffer = {'J', 'A', 'V', 'A'};
 
        // Use of write(byte[] buffer, int offset, int maxlen)
        geek_output.write(buffer, 0, 4);
        int a = 5;
        System.out.print("Use of write(buffer, offset, maxlen) : ");
        while(a>0)
        {
            System.out.print(" " + (char) geek_input.read());
        }
    }
}

Producción: 

Use of write(buffer, offset, maxlen) :  J A V A
  • close() : java.io.PipedOutputStream.close() cierra el flujo de salida canalizado y libera los recursos asignados. 
    Sintaxis: 
public void close()
Parameters : 
--------------
Return :                                               
void
Exception :
-> IOException : if in case IO error occurs.
  • connect (destino de PipedInputStream): java.io.PipedOutputStream.connect (destino de PipedInputStream conecta el flujo de salida canalizado al flujo de entrada canalizado ‘destino’ y, en caso de que el ‘destino’ sea canalizaciones con algún otro flujo, se lanza la excepción IO 
    Sintaxis: 
public void connect(PipedInputStream destination)
Parameters : 
destination : the Piped Input Stream to be connected to
Return :                                               
void
Exception :
-> IOException : if in case IO error occurs.
  • flush() : java.io.PipedOutputStream.flush() vacía el flujo de salida. 
    Sintaxis: 
public void flush()
Parameters : 
------------
Return :                                               
void
Exception :
-> IOException : if in case IO error occurs.

Código Java que ilustra el funcionamiento de los métodos de la clase PipedOutputStream: 

Java

// Java program illustrating the working of PipedInputStream
// write(), write(byte[] buffer, int offset, int maxlen),
// close(), flush(), connect()
 
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
        PipedInputStream geek_input = new PipedInputStream();
        PipedOutputStream geek_output = new PipedOutputStream();
        try
        {
            // Use of connect() : connecting geek_input with geek_output
            geek_input.connect(geek_output);
 
            // Use of write(int byte) :
            geek_output.write(71);
            geek_output.write(69);
            geek_output.write(69);
            geek_output.write(75);
            geek_output.write(83);
 
            // Use of flush() method :
            geek_output.flush();
            System.out.println("Use of flush() method : ");
 
            int i = 5;
            while(i > 0)
            {
                System.out.print(" " + (char) geek_input.read());
                i--;
            }
 
            // USe of close() method :
            System.out.println("\nClosing the Output stream");
            geek_output.close();
 
        }
        catch (IOException except)
        {
            except.printStackTrace();
        }
    }
}

Producción: 

Use of flush() method : 
 G E E K S
Closing the Output stream

Este artículo es aportado por Mohit Gupta 🙂 . 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 *