Јава ПипедВритер Цласс

Јава ПипедВритер Цласс

Тхе Класа ПипедВритер у Јави омогућава две нити да комуницирају једна са другом пропуштањем података кроз цев. Ова класа је корисна када желимо да један део програма шаље податке другом делу без складиштења у меморији.

Карактеристике класе ПипедВритер:

  • Омогућава уписивање података у цев.
  • Користи бафер за привремено складиштење података пре него што их пошаље у ПипедРеадер.
  • Ради са ПипедРеадер-ом како би осигурао безбедан пренос података између нити.
  • Ако се цев поквари, јавља се грешка.

Декларација ПипедВритер-а у Јави

Декларација класе ПипедВритер је:

јавна класа ПипедВритер проширује Вритер

Сви имплементирани интерфејси:

  • Затварање: Овај интерфејс користе класе које рукују ресурсима.
  • Може се испирати: Овај интерфејс се користи за избацивање података на одредиште.
  • Може се додати: Овај интерфејс се користи за додавање података у постојећи ток.
  • АутоЦлосеабле: Овај интерфејс омогућава аутоматско затварање ресурса.

Конструктори у класи ПипедВритер

Ова класа се састоји од два конструктора уз помоћ којих можемо креирати објекте ове класе на различите начине. Следећи су конструктори доступни у овој класи:

1. ПипедВритер(): Овај конструктор се користи за креирање ПипедВритер-а који још није повезан ни са чим.

Синтакса:

ПипедВритер()

Пример:

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  ();      }      }   }   

Излаз
Hello from PipedWriter! 


2. ПипедВритер(ПипедРеадер инСтреам): Овај конструктор који смо користили да креирамо ПипедВритер и повезујемо га са ПипедРеадер-ом.

Синтакса:

ПипедВритер(ПипедРеадер снк)

Пример:

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  ();      }      }   }   

Излаз
Hello PipedWriter 


Јава ПипедВритер методе

Слика испод показује методе класе ПипедВритер.

ио.ПипедВритер Цласс у Јави


Сада ћемо детаљно разговарати о свакој методи један по један:

1. написати (инт цхар): Овај метод се користи за уписивање једног знака у цев.

Синтакса:

публиц воид врите (инт цхар)

  • Параметар: Овај метод узима један параметар који исцхар представља карактер који треба написати.
  • Изузетак: Овај метод враћа ИОЕкцептион ако постоји проблем са И/О операцијом.


2. врите(цхар[] царраи инт оффсет инт маклен): Овај метод се користи за писање знакова из низа у цев.

Синтакса:

публиц воид врите(цхар[] царраи инт оффсет инт маклен)

  • Параметар: Овај метод укључује три параметра која су наведена у наставку:
    • носи: То је низ знакова који садржи податке
    • офсет: То је позиција у низу на којој треба започети писање форме
    • маклен: То је максималан број знакова за писање.
  • Изузетак: Овај метод враћа ИОЕкцептион ако постоји проблем са И/О операцијом.


3. повежите (одредиште ПипедРеадер-а): Овај метод се користи за повезивање ПипедВритер-а са ПипедРеадер-ом.

Синтакса:

публиц воид цоннецт (одредиште ПипедРеадер-а)

  • Параметар: Овај метод узима једно одредиште параметра, то је ПипедРеадер на који ће се ПипедВритер повезати ради преноса података.
  • Изузетак: Овај метод баца ИОЕкцептион ако дође до грешке током повезивања.


4. флусх(): Овај метод се користи за испирање података у цеви.

Синтакса:

публиц воид флусх()

  • Параметар: Овај метод не узима ниједан параметар.
  • Изузетак: Овај метод баца ИОЕкцептион ако дође до грешке приликом испирања података.


5. затвори(): Овај метод се користи за затварање ПипедВритер-а.

Синатк:

публиц воид цлосе()

  • Параметар: Овај метод не узима ниједан параметар.
  • Изузетак: Овај метод баца ИОЕкцептион ако постоји проблем са затварањем писача.


Сада ћемо разговарати о томе како можемо да користимо класу ПипедВритер за писање података и читање преко повезаног ПипедРеадер-а

Пример:

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  ();         }      }   

Излаз
Output from the pipe: J A V A 



Јава програм који илуструје рад метода класе ПипедВритер

Сада ћемо написати неке знакове, испразнити излаз и затворити писац.

Пример:

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  ();      }      }   }   

Излаз
Output after flush(): G E E K S Closing the Writer stream  
Креирај квиз