Java PipedWriter klasė

Java PipedWriter klasė

The PipedWriter klasė Java leidžia dviem gijomis susisiekti tarpusavyje, perduodant duomenis vamzdžiu. Ši klasė naudinga, kai norime, kad viena programos dalis siųstų duomenis į kitą dalį, nesaugodama jų atmintyje.

„PipedWriter“ klasės ypatybės:

  • Tai leidžia įrašyti duomenis į vamzdį.
  • Jis naudoja buferį, kad laikinai saugotų duomenis prieš siunčiant juos į PipedReader.
  • Jis veikia su PipedReader, kad užtikrintų saugų duomenų perdavimą tarp gijų.
  • Jei vamzdis lūžta, tai rodo klaidą.

„PipedWriter“ deklaracija „Java“.

„PipedWriter“ klasės deklaracija yra tokia:

viešoji klasė PipedWriter pratęsia Writer

Visos įdiegtos sąsajos:

  • Užsidaro: Šią sąsają naudoja klasės, kurios tvarko išteklius.
  • Nuplaunamas: Ši sąsaja naudojama duomenims nuplauti į paskirties vietą.
  • Pridedama: Ši sąsaja naudojama duomenims pridėti prie esamo srauto.
  • Automatinis uždarymas: Ši sąsaja leidžia automatiškai uždaryti išteklius.

Konstruktoriai PipedWriter klasėje

Šią klasę sudaro du konstruktoriai, kurių pagalba galime įvairiai kurti šios klasės objektus. Šioje klasėje galimi šie konstruktoriai:

1. PipedWriter(): Šis konstruktorius naudojamas PipedWriter, kuris dar nėra prijungtas prie nieko, sukurti.

Sintaksė:

PipedWriter ()

Pavyzdys:

Java
   // Demonstrating the working   // of PipedWriter()   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )     {          // Create PipedWriter and PipedReader      PipedWriter     w     =     new     PipedWriter  ();      PipedReader     r     =     new     PipedReader  ();      try     {      // Connect the PipedWriter to the PipedReader      w  .  connect  (  r  );      // Create a thread to write data into the pipe      Thread     writerThread     =     new     Thread  (  new     Runnable  ()     {      public     void     run  ()     {      try     {      w  .  write  (  'Hello from PipedWriter!'  );      w  .  close  ();      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }      });      // Create a thread to read data from the pipe      Thread     readerThread     =     new     Thread  (  new     Runnable  ()     {      public     void     run  ()     {      try     {      int     data  ;      while     ((  data     =     r  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     data  );      }      r  .  close  ();      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }      });      // Start both threads      writerThread  .  start  ();      readerThread  .  start  ();      // Wait for both threads to finish      writerThread  .  join  ();      readerThread  .  join  ();      }     catch     (  IOException     |     InterruptedException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Išvestis
Hello from PipedWriter! 


2. „PipedWriter“ („PipedReader“ sraute): Šis konstruktorius, kurį naudojome, sukuria PipedWriter ir sujungia jį su PipedReader.

Sintaksė:

„PipedWriter“ („PipedReader snk“)

Pavyzdys:

Java
   // Demonstrating the working    // PipedWriter(PipedReader snk)   import     java.io.*  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     {      try     {      // Create a PipedReader and a PipedWriter      PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  (  r  );         // Create a thread to write data to the PipedWriter      Thread     writerThread     =     new     Thread  (()     ->     {      try     {      w  .  write  (  'Hello PipedWriter'  );      w  .  close  ();         }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      });      // Create a thread to read data from the PipedReader      Thread     readerThread     =     new     Thread  (()     ->     {      try     {      int     data  ;      while     ((  data     =     r  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     data  );         }      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      });      // Start both threads      writerThread  .  start  ();      readerThread  .  start  ();      // Wait for both threads to finish      writerThread  .  join  ();      readerThread  .  join  ();      }     catch     (  IOException     |     InterruptedException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Išvestis
Hello PipedWriter 


Java PipedWriter metodai

Žemiau esančiame paveikslėlyje pavaizduoti PipedWriter klasės metodai.

io.PipedWriter klasė Java


Dabar mes išsamiai aptarsime kiekvieną metodą po vieną:

1. rašyti (int char): Šis metodas naudojamas vienam simboliui įrašyti į vamzdį.

Sintaksė:

viešas tuščias rašymas (int char)

  • Parametras: Šis metodas paima vieną parametrą, kuris reiškia rašomą simbolį.
  • Išimtis: Šis metodas grąžina IOException, jei kyla problemų dėl įvesties / išvesties operacijos.


2. write(char[] carray int offset int maxlen): Šis metodas naudojamas rašant simbolius iš masyvo į vamzdį.

Sintaksė:

public void write(char[] carray int offset int maxlen)

  • Parametras: Šis metodas apima tris toliau išvardytus parametrus:
    • carray: Tai yra simbolių masyvas, kuriame yra duomenų
    • kompensuoti: Tai vieta masyve, nuo kurios pradėti rašyti formą
    • Maxlen: Tai didžiausias rašomų simbolių skaičius.
  • Išimtis: Šis metodas grąžina IOException, jei kyla problemų dėl įvesties / išvesties operacijos.


3. prisijungti (PipedReader paskirties vieta): Šis metodas naudojamas PipedWriter prijungti prie PipedReader.

Sintaksė:

viešasis ryšys („PipedReader“ paskirties vieta)

  • Parametras: Šis metodas reikalauja vieno parametro paskirties vietos, tai yra PipedReader, prie kurio PipedWriter prisijungs, kad galėtų perduoti duomenis.
  • Išimtis: Šis metodas pateikia IOException, jei prisijungiant įvyksta klaida.


4. flush(): Šis metodas naudojamas duomenims nuplauti vamzdyje.

Sintaksė:

public void flush ()

  • Parametras: Šis metodas nereikalauja jokių parametrų.
  • Išimtis: Šis metodas išmeta IOException, jei išplaunant duomenis įvyksta klaida.


5. uždaryti (): Šis metodas naudojamas PipedWriter uždarymui.

Sinatsė:

vieša galia uždaryti ()

  • Parametras: Šis metodas nereikalauja jokių parametrų.
  • Išimtis: Šis metodas išmeta IOException, jei kyla problemų uždarant rašytoją.


Dabar aptarsime, kaip galime naudoti PipedWriter klasę duomenims rašyti ir skaityti per prijungtą PipedReader

Pavyzdys:

Java
   // Demonstrating how to use PipedReader    // and PipedWriter to transferr an array    // of characters between two threads   import     java.io.*  ;      public     class   Geeks     {         public     static     void     main  (  String  []     args  )     throws     IOException     {         PipedReader     r     =     new     PipedReader  ();         PipedWriter     w     =     new     PipedWriter  ();         r  .  connect  (  w  );     // Must connect before use       // Writing a char array       char  []     c     =     {  'J'       'A'       'V'       'A'  };         w  .  write  (  c       0       4  );         // Reading blocks if no data is written yet      System  .  out  .  print  (  'Output from the pipe:'  );         for     (  int     i     =     0  ;     i      <     4  ;     i  ++  )     {         System  .  out  .  print  (  ' '     +     (  char  )     r  .  read  ());         }         w  .  close  ();         r  .  close  ();         }      }   

Išvestis
Output from the pipe: J A V A 



Java programa, iliustruojanti PipedWriter klasės metodų veikimą

Dabar mes parašysime kai kuriuos simbolius, praplaukite išvestį ir uždarysime rašytoją.

Pavyzdys:

Java
   // Java program illustrating the working of PipedWriter    // write() connect    // close() flush()   import     java.io.*  ;   public     class   Geeks     {          public     static     void     main  (  String  []     args  )     throws     IOException     {      PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      try     {      // Use of connect(): Connecting the writer to the reader      r  .  connect  (  w  );      // Use of write(int byte): Writing characters to the pipe      w  .  write  (  71  );         w  .  write  (  69  );      w  .  write  (  69  );      w  .  write  (  75  );      w  .  write  (  83  );         // Use of flush() method: Flushing the output to       // make sure all data is written      w  .  flush  ();      System  .  out  .  println  (  'Output after flush():'  );      // Reading from the pipe      for     (  int     i     =     0  ;     i      <     5  ;     i  ++  )     {      System  .  out  .  print  (  ' '     +     (  char  )     r  .  read  ());      }      // Use of close() method: Closing the writer      System  .  out  .  println  (  'nClosing the Writer stream'  );      w  .  close  ();      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Išvestis
Output after flush(): G E E K S Closing the Writer stream  
Sukurti viktoriną