Java.io.PipedInputStream-klasse in Java

Java.io.PipedInputStream-klasse in Java
io.PipedInputStream-klasse Pijpen in IO biedt een link tussen twee threads die tegelijkertijd in JVM draaien. Leidingen worden dus zowel als bron als bestemming gebruikt.
  • PipedInputStream wordt ook doorgesluisd met PipedOutputStream. Gegevens kunnen dus worden geschreven met PipedOutputStream en kunnen worden geschreven met PipedInputStream. Maar als u beide threads tegelijkertijd gebruikt, ontstaat er een impasse voor de threads.
  • Er wordt gezegd dat een pijp kapot is als een thread die databytes aan de verbonden doorgesluisde uitvoerstroom leverde, niet langer leeft.
Verklaring:
public class PipedInputStream extends InputStream 
Constructeur:
    PipedInputStream() : creëert een PipedInputStream waarmee deze niet is verbonden. PipedInputStream(int pSize) : creëert een PipedInputStream die niet is verbonden met de opgegeven pijpgrootte. PipedInputStream(PipedOutputStream uitStream) : maakt een PipedInputStream aan waarmee deze is verbonden met PipedOutputStream - 'outStream'. PipedInputStream(PipedOutputStream outStream int pSize) : creëert een Piped Input Stream die is verbonden met de Piped Output Stream met de opgegeven pijpgrootte.
Methoden:
    int lezen(): Reads the next byte of data from this piped input stream.The value byte is returned as an int in the range 0 to 255. This method blocks until input data is available the end of the stream is detected or an exception is thrown. Java
       // Java program illustrating the working of read() method   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 read() method :      geek_output  .  write  (  71  );      System  .  out  .  println  (  'using read() : '     +     (  char  )  geek_input  .  read  ());      geek_output  .  write  (  69  );      System  .  out  .  println  (  'using read() : '     +     (  char  )  geek_input  .  read  ());      geek_output  .  write  (  75  );      System  .  out  .  println  (  'using read() : '     +     (  char  )  geek_input  .  read  ());      }      catch     (  IOException     except  )      {      except  .  printStackTrace  ();      }      }   }   
    Uitgang:
    using read() : G using read() : E using read() : K 
    read(byte[] buffer int offset int maxlen) : java.io.PipedInputStream.read(byte[] buffer int offset int maxlen) leest tot maxlen bytes van de gegevens van Piped Input Stream naar de array met buffers. De methode blokkeert als het einde van de stream wordt bereikt of als er een uitzondering wordt gegenereerd. Syntaxis:
    public int read(byte[] buffer int offset int maxlen)   Parameters :    buffer : the destination buffer into which the data is to be read offset : starting in the destination array - 'buffer'. maxlen : maximum length of array to be read   Return :    next 'maxlen' bytes of the data as an integer value return -1 is end of stream is reached   Exception :   ->   IOException :   if in case IO error occurs. ->   NullPointerException :   if buffer is null. ->   IndexOutOfBoundsException :   if offset is -ve or maxlen is -ve or maxlen > buffer.length - offset.  
    ontvangen(int-byte): java.io.PipedInputStream.receive (int-byte) ontvangt byte van de gegevens. Als er geen invoer beschikbaar is, blokkeert de methode. Syntaxis:
    protected void receive(int byte)   Parameters :    byte : the bytes of the data received   Return :    void   Exception :   ->   IOException :   if in case IO error occurs or pipe is broken. 
    dichtbij() : java.io.PipedInputStream.close() sluit de Piped Input Stream en geeft de toegewezen bronnen vrij. Syntaxis:
    public void close()   Parameters :    --------------   Return :    void   Exception :   ->   IOException :   if in case IO error occurs. 
    connect(PipedOutputStream-bron) : java.io.PipedInputStream.connect (PipedOutputStream-bron) verbindt de Piped Input Stream met de 'source' Piped Output Stream en in het geval dat 'source' pipelines is met een andere stream, wordt er een IO-uitzondering gegenereerd Syntaxis:
    public void connect(PipedOutputStream source)   Parameters :    source : the Piped Output Stream to be connected to   Return :    void   Exception :   ->   IOException :   if in case IO error occurs. 
    beschikbaar() : java.io.PipedInputStream.available() retourneert nr. aantal bytes dat uit de Input Stream kan worden gelezen zonder daadwerkelijk te worden geblokkeerd. Syntaxis:
    public int available()   Parameters :    -------------   Return :    no. of bytes that can be read from Input Stream without actually being blocked. 0 if the stream is already closed but by invoking close() method   Exception :   ->   IOException :   if in case IO error occurs. 
    Java-programma dat de werking van PipedInputStream-klassemethoden uitlegt: Java
       // Java program illustrating the working of PipedInputStream   // connect() read(byte[] buffer int offset int maxlen)   // close() available()   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  );      geek_output  .  write  (  71  );      geek_output  .  write  (  69  );      geek_output  .  write  (  69  );      geek_output  .  write  (  75  );      geek_output  .  write  (  83  );      // Use of available() :      System  .  out  .  println  (  'Use of available() : '     +     geek_input  .  available  ());      // Use of read(byte[] buffer int offset int maxlen) :      byte  []     buffer     =     new     byte  [  5  ]  ;      // destination 'buffer'      geek_input  .  read  (  buffer       0       5  );      String     str     =     new     String  (  buffer  );      System  .  out  .  println  (  'Using read(buffer offset maxlen) : '     +     str  );      // USe of close() method :      System  .  out  .  println  (  'Closing the stream'  );      geek_input  .  close  ();      }      catch     (  IOException     except  )      {      except  .  printStackTrace  ();      }      }   }   
    Uitgang:
    Use of available() : 5 Using read(buffer offset maxlen) : GEEKS Closing the stream 
    Next Article: Java.io.PipedOutputStream-klasse in Java Quiz maken