Клас на Java PipedReader

Клас на Java PipedReader

The Клас PipedReader в Java е част от java.io пакет и се използва за четене на символни данни от канал. Този клас позволява комуникация между нишки, където една нишка записва данни с помощта на PipedWriter, а друга ги чете с помощта PipedReader.

Характеристики на класа PipedReader:

  • Позволява четене на данни през тръба.
  • Той използва буфер за съхраняване на данни, получени от PipedWriter.
  • Работи с PipedWriter, за да се увери, че данните се прехвърлят безопасно между нишките.
  • Ако тръбата се счупи, извежда грешка.

Какво е канал в Java?

В Java тръба се използва за свързване на две нишки. Едната нишка се използва за изпращане на данни през канала, а другата нишка чете данните. Ако нишката, която изпраща данните, спре или се срине, каналът се счита за счупен.

Декларация на клас PipedReader

Декларацията на класа PipedReader е:

публичен клас PipedReader разширява Reader

Всички внедрени интерфейси:

  • Затваряне: Този интерфейс се използва за затваряне на потока и освобождаване на ресурси, когато вече не са необходими.
  • Автоматично затваряне: Този интерфейс позволява автоматично управление на ресурсите в изрази за опит с ресурси.
  • Четимо: Този интерфейс позволява да се четат данни от потока.

Конструктори на PipedReader

Този клас се състои от четири конструктора, с помощта на които можем да създадем обект от този клас по различни начини. Следните са наличните конструктори в този клас:

1. PipedReader(): Този конструктор създава PipedReader, който все още не е свързан с нито един писател.

Синтаксис:

публичен PipedReader()


2. PipedReader(int pipeSize): Този конструктор създава aPipedReader с определен размер на тръбата.

Синтаксис:

публичен PipedReader(int pSize)


3. PipedReader (PipedWriter src): Този конструктор създава PipedReader, който е свързан към PipedWriterStream src.

публичен PipedReader(PipedWriter src)


4. PipedReader(PipedWriter src int pipeSize): Този конструктор създава свързан PipedReader с определен размер и свързан към дадения PipedWriter.

Синтаксис:

public PipedReader(PipedWriter src int pSize)


Java PipedReaderMethods

Изображението по-долу демонстрира методите на класа PipedReader.

io.PipedReader Клас в Java


Сега ще обсъдим подробно всеки метод един по един:

1. прочетете(): Този метод се използва за получаване на следващия знак от PipedReader. Блокира, докато има данни за четене или възникне грешка.

Синтаксис:

public int read() хвърля IOException

  • Параметър: Този метод не приема никакъв параметър.
  • Тип връщане: Този метод връща следващия знак като цяло число или връща -1, ако е достигнат краят на потока.

Пример:

Java
   // Demonstrating the working    // of read() method   import     java.io.*  ;   public     class   GeeKs     {          public     static     void     main  (  String  []     args  )     throws     IOException     {          PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      // Connect the reader and writer      r  .  connect  (  w  );      // Write data to the PipedWriter      w  .  write  (  71  );         System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());         w  .  write  (  69  );         System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());         w  .  write  (  75  );         System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());         }   }   

Изход
Read: G Read: E Read: K  


2. read(char[] carray int offset int maxlen): Този метод се използва за четене до maxlen знак от PipedReader Stream към масива от знаци. Методът блокира, ако бъде достигнат краят на потока или е хвърлено изключение.

Синтаксис:

public int read(char[] carray int offset int maxlen) хвърля IOException

  • Параметър: Този метод включва три параметъра, които са изброени по-долу:
    • керей: Това е буферът, в който ще бъдат прочетени данните.
    • офсет: Това е началната позиция в масива
    • макслен: Максималният брой знаци за четене в масива.
  • Тип връщане: Този метод връща maxlen байта от данните като цяло число или връща -1, ако е достигнат краят на потока

Пример:

Java
   // Demonstrating the working    // of read(char[] carray int offset int maxlen)    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  );      // Write data to PipedWriter      w  .  write  (  71  );     // G      w  .  write  (  69  );     // E      w  .  write  (  75  );     // K      w  .  write  (  83  );     // S      // Read data into an array      char  []     b     =     new     char  [  5  ]  ;      r  .  read  (  b       0       5  );          System  .  out  .  print  (  'Read characters: '  );      for     (  char     c     :     b  )     {      System  .  out  .  print  (  c  );         }      }   }   

Изход
Read characters: GEKS 


3. затвори (): Този метод се използва за затваряне на PipedReader.

Синтаксис:

public void close() хвърля IOException

  • Параметър: Този метод не приема никакъв параметър
  • Тип връщане: Този метод не връща нищо

Пример:

Java
   // Demonstrating the working   // of close() method   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  );      w  .  write  (  71  );         // Close the reader      r  .  close  ();      System  .  out  .  println  (  'Stream closed.'  );      }   }   

Изход
Stream closed.  


4. готов(): Този метод се използва за проверка дали потокът е готов за четене.

Синтаксис:

public boolean ready() хвърля IOException

  • Параметър: Този метод не приема никакъв параметър
  • Тип връщане: Този метод връща true, ако потокът е готов за четене, в противен случай връща false.

Пример:

Java
   // Demonstrating the working   // of ready() method   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  );      w  .  write  (  71  );         // Check if the stream is ready to be read      System  .  out  .  println  (  'Stream is ready to be read: '     +     r  .  ready  ());      }   }   

Изход
Stream is ready to be read: true  


5. затвори (): Този метод се използва за затваряне на потоците на PipedReader.

Синтаксис:

публично невалидно затваряне()

  • Параметър: Този метод не приема никакъв параметър.
  • Тип връщане: Този метод не връща нищо.

Пример:

Java
   // Demonstrating the working   // of close() method   import     java.io.*  ;   public     class   Geeks  {          public     static     void     main  (  String  []     args  )     {          try     {      // Create a PipedReader and PipedWriter      PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      // Connect the PipedReader to the PipedWriter      r  .  connect  (  w  );      // Write a character to the PipedWriter      w  .  write  (  'A'  );          // Read and print the character from the PipedReader      System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());     // Output: A      // Close the PipedReader stream      r  .  close  ();      System  .  out  .  println  (  'Stream closed.'  );      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Изход
Read: A Stream closed.  
Създаване на тест