자바 PipedReader 클래스

자바 PipedReader 클래스

그만큼 Java의 PipedReader 클래스 의 일부입니다 java.io 패키지이며 파이프에서 문자 데이터를 읽는 데 사용됩니다. 이 클래스는 한 스레드가 PipedWriter를 사용하여 데이터를 쓰고 다른 스레드가 이를 사용하여 읽는 스레드 간 통신을 허용합니다. PipedReader.

PipedReader 클래스의 특징:

  • 파이프를 통해 데이터를 읽을 수 있습니다.
  • PipedWriter로부터 받은 데이터를 저장하기 위해 버퍼를 사용합니다.
  • PipedWriter와 함께 작동하여 스레드 간에 데이터가 안전하게 전송되는지 확인합니다.
  • 파이프가 끊어지면 오류가 발생합니다.

Java의 파이프란 무엇입니까?

Java에서는 두 개의 스레드를 연결하는 데 파이프가 사용됩니다. 한 스레드는 파이프를 통해 데이터를 전송하는 데 사용되며 다른 스레드는 데이터를 읽습니다. 데이터를 보내는 스레드가 중지되거나 충돌하면 파이프가 손상된 것으로 간주됩니다.

PipedReader 클래스 선언

PipedReader 클래스의 선언은 다음과 같습니다.

공개 클래스 PipedReader는 Reader를 확장합니다.

구현된 모든 인터페이스:

  • 닫을 수 있음: 이 인터페이스는 더 이상 필요하지 않을 때 스트림을 닫고 리소스를 해제하는 데 사용됩니다.
  • 자동 닫기 가능: 이 인터페이스를 사용하면 try-with-resources 문에서 자동 리소스 관리가 가능합니다.
  • 읽을 수 있음: 이 인터페이스를 사용하면 스트림에서 데이터를 읽을 수 있습니다.

PipedReader의 생성자

이 클래스는 다양한 방법으로 이 클래스의 객체를 생성할 수 있는 4개의 생성자로 구성됩니다. 이 클래스에서 사용할 수 있는 생성자는 다음과 같습니다.

1. 파이프리더(): 이 생성자는 아직 작성자에 연결되지 않은 PipedReader를 생성합니다.

통사론:

공개 PipedReader()


2. PipedReader(int 파이프 크기): 이 생성자는 지정된 파이프 크기로 PipedREader를 생성합니다.

통사론:

공개 PipedReader(int pSize)


3. PipedReader(PipedWriter src): 이 생성자는 PipedWriterStream src에 연결된 PipedReader를 생성합니다.

공개 PipedReader(PipedWriter src)


4. PipedReader(PipedWriter src int 파이프 크기): 이 생성자는 지정된 크기로 연결된 PipedReader를 생성하고 지정된 PipedWriter에 연결됩니다.

통사론:

공개 PipedReader(PipedWriter src int pSize)


Java PipedReaderMethods

아래 이미지는 PipedReader 클래스의 메서드를 보여줍니다.

Java의 io.PipedReader 클래스


이제 각 방법에 대해 하나씩 자세히 설명하겠습니다.

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): 이 메서드는 PipedReader Stream에서 최대 maxlen 문자를 문자 배열로 읽는 데 사용됩니다. 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. 준비(): 이 메서드는 스트림을 읽을 준비가 되었는지 확인하는 데 사용됩니다.

통사론:

공개 부울 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.  
퀴즈 만들기

마음에 드실지도 몰라요