Java.io.PipedInputStream-klassen i Java

Java.io.PipedInputStream-klassen i Java
io.PipedInputStream-klassen Rør i IO gir en kobling mellom to tråder som kjører i JVM samtidig. Så rør brukes både som kilde eller destinasjon.
  • PipedInputStream er også koblet til PipedOutputStream. Så data kan skrives ved hjelp av PipedOutputStream og kan skrives ved hjelp av PipedInputStream. Men å bruke begge trådene samtidig vil skape en deadlock for trådene.
  • Et rør sies å være brutt hvis en tråd som ga databyte til den tilkoblede utgangsstrømmen ikke lenger er i live.
Erklæring:
public class PipedInputStream extends InputStream 
Konstruktør:
    PipedInputStream() : oppretter en PipedInputStream som den ikke er tilkoblet. PipedInputStream(int pSize): oppretter en PipedInputStream som den ikke er koblet til med spesifisert rørstørrelse. PipedInputStream(PipedOutputStream outStream): oppretter en PipedInputStream som den er koblet til PipedOutputStream - 'outStream'. PipedInputStream(PipedOutputStream outStream int pSize): oppretter en Piped Input Stream som er koblet til Piped Output Stream med spesifisert rørstørrelse.
Metoder:
    int read(): 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  ();      }      }   }   
    Utgang:
    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) leser opptil makslen byte av dataene fra Piped Input Stream til utvalget av buffere. Metoden blokkerer hvis slutten av Stream nås eller unntak blir kastet. Syntaks:
    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.  
    motta(int byte): java.io.PipedInputStream.receive(int byte) mottar byte av dataene. Hvis ingen inngang er tilgjengelig, blokkeres metoden. Syntaks:
    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. 
    close() : java.io.PipedInputStream.close() lukker Piped Input Stream og frigir de tildelte ressursene. Syntaks:
    public void close()   Parameters :    --------------   Return :    void   Exception :   ->   IOException :   if in case IO error occurs. 
    koble til (PipedOutputStream-kilde): java.io.PipedInputStream.connect(PipedOutputStream-kilde) kobler den rørbaserte inngangsstrømmen til 'kilden' rørutgangsstrømmen og i tilfelle 'kilden' er rør med et annet strøm-IO-unntak blir kastet Syntaks:
    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. 
    tilgjengelig() : java.io.PipedInputStream.available() returnerer nr. byte som kan leses fra Input Stream uten faktisk å bli blokkert. Syntaks:
    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-program som forklarer hvordan PipedInputStream-klassemetodene fungerer: 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  ();      }      }   }   
    Produksjon:
    Use of available() : 5 Using read(buffer offset maxlen) : GEEKS Closing the stream 
    Next Article: Java.io.PipedOutputStream-klassen i Java Lag quiz

Topp Artikler

Kategori

Interessante Artikler