Klasa Java PipedReader

Klasa Java PipedReader

The Klasa PipedReader w Javie jest częścią Java.io pakiet i służy do odczytywania danych znakowych z potoku. Ta klasa umożliwia komunikację między wątkami, w której jeden wątek zapisuje dane przy użyciu PipedWriter, a inny je odczytuje Czytnik Piped.

Funkcje klasy PipedReader:

  • Umożliwia odczyt danych poprzez potok.
  • Używa bufora do przechowywania danych otrzymanych z PipedWriter.
  • Współpracuje z PipedWriter, aby mieć pewność, że dane są bezpiecznie przesyłane między wątkami.
  • Jeśli rura pęknie, zgłasza błąd.

Co to jest potok w Javie?

W Javie potok służy do łączenia dwóch wątków. Jeden wątek służy do przesyłania danych potokiem, a drugi wątek je odczytuje. Jeśli wątek wysyłający dane zatrzyma się lub ulegnie awarii, potok uważa się za uszkodzony.

Deklaracja klasy PipedReader

Deklaracja klasy PipedReader to:

klasa publiczna PipedReader rozszerza Reader

Wszystkie zaimplementowane interfejsy:

  • Zamykane: Ten interfejs służy do zamykania strumienia i zwalniania zasobów, gdy nie są już potrzebne.
  • Automatyczne zamykanie: Interfejs ten umożliwia automatyczne zarządzanie zasobami w instrukcjach try-with-resources.
  • Czytelny: Interfejs ten umożliwia odczyt danych ze strumienia.

Konstruktorzy PipedReader

Klasa ta składa się z czterech konstruktorów, za pomocą których możemy na różne sposoby tworzyć obiekty tej klasy. Poniżej znajdują się konstruktory dostępne w tej klasie:

1. PipedReader(): Ten konstruktor tworzy PipedReader, który nie jest jeszcze połączony z żadnym modułem zapisującym.

Składnia:

publiczny PipedReader()


2. PipedReader (int rozmiar rury): Ten konstruktor tworzy aPipedREader z określonym rozmiarem potoku.

Składnia:

publiczny PipedReader (int pSize)


3. PipedReader(PipedWriter src): Ten konstruktor tworzy PipedReader, który jest podłączony do PipedWriterStream src.

publiczny PipedReader(PipedWriter src)


4. PipedReader(PipedWriter src int rozmiar rury): Ten konstruktor tworzy połączony PipedReader o określonym rozmiarze i połączony z danym PipedWriter.

Składnia:

public PipedReader(PipedWriter src int pSize)


Metody Java PipedReader

Poniższy obrazek przedstawia metody klasy PipedReader.

Klasa io.PipedReader w Javie


Teraz omówimy szczegółowo każdą metodę:

1. przeczytaj(): Ta metoda służy do pobrania następnego znaku z PipedReader. Blokuje do momentu pojawienia się danych do odczytania lub wystąpienia błędu.

Składnia:

public int read() zgłasza wyjątek IOException

  • Parametr: Ta metoda nie przyjmuje żadnego parametru.
  • Typ zwrotu: Ta metoda zwraca następny znak jako liczbę całkowitą lub zwraca -1, jeśli osiągnięty zostanie koniec strumienia.

Przykład:

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

Wyjście
Read: G Read: E Read: K  


2. read(char[] carray int offset int maxlen): Ta metoda służy do odczytywania maksymalnie znaków ze strumienia PipedReader do tablicy znaków. Metoda blokuje się, jeśli osiągnięty zostanie koniec strumienia lub zostanie zgłoszony wyjątek.

Składnia:

public int read(char[] carray int offset int maxlen) zgłasza wyjątek IOException

  • Parametr: Metoda ta obejmuje trzy parametry wymienione poniżej:
    • nieść: Jest to bufor, do którego będą wczytywane dane.
    • zrównoważyć: Jest to pozycja początkowa w tablicy
    • Maxlen: Maksymalna liczba znaków, które można wczytać do tablicy.
  • Typ zwrotu: Ta metoda zwraca maksymalną długość bajtów danych jako wartość całkowitą lub zwraca -1 w przypadku osiągnięcia końca strumienia

Przykład:

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

Wyjście
Read characters: GEKS 


3. zamknij(): Ta metoda służy do zamykania PipedReader.

Składnia:

public void close() zgłasza wyjątek IOException

  • Parametr: Ta metoda nie przyjmuje żadnego parametru
  • Typ zwrotu: Ta metoda nic nie zwraca

Przykład:

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.'  );      }   }   

Wyjście
Stream closed.  


4. gotowy(): Metodą tą sprawdzamy czy strumień jest gotowy do odczytu.

Składnia:

publiczna wartość logiczna Ready() zgłasza wyjątek IOException

  • Parametr: Ta metoda nie przyjmuje żadnego parametru
  • Typ zwrotu: Ta metoda zwraca wartość true, jeśli strumień jest gotowy do odczytu, w przeciwnym razie zwraca wartość false.

Przykład:

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

Wyjście
Stream is ready to be read: true  


5. zamknij(): Ta metoda służy do zamykania strumieni PipedReader.

Składnia:

publiczna pustka zamknij()

  • Parametr: Ta metoda nie przyjmuje żadnego parametru.
  • Typ zwrotu: Ta metoda nic nie zwraca.

Przykład:

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

Wyjście
Read: A Stream closed.  
Utwórz quiz