logo

Java.io.PipedOutputStream Клас у Java

Клас Java.io.PipedInputStream у Java

Клас io.PipedOutputStream у Java' src='//techcodeview.com/img/misc/33/java-io-pipedoutputstream-class-in-java.webp' title=


Труби в IO забезпечують зв’язок між двома потоками, що працюють у JVM одночасно. Отже, канали використовуються як джерело, так і призначення.  

  • PipedInputStream також передається за допомогою PipedOutputStream. Таким чином, дані можуть бути записані за допомогою PipedOutputStream і можуть бути записані за допомогою PipedInputStream. Але використання обох потоків одночасно створить взаємоблокування для потоків.
  • PipedOutputStream надсилає кінець каналу. Дані записуються в PipedOutputStream. Канал вважається зламаним, якщо PipedInputStream, який читав дані, більше не існує.

Декларація:   



public class PipedOutputStream  
extends OutputStream

Конструктор:   

  • PipedOutputStream() : створює PipedOutputStream, який не підключено.
  • PipedOutputStream(PipedOutputStream inStream) : створює PipedOutputStream, який він 
    підключено до PipedInputStream - "inStream".

Методи: 

write() : java.io.PipedOutputStream.write(int byte) записує вказаний байт у конвеєрний вихідний потік. 

Синтаксис: 

    public void write(int byte)     

Parameters :
byte : byte to be written

Return : void
Exception :
-> IOException : if in case IO error occurs.

write(byte[] buffer int offset int maxlen) : java.io.PipedOutputStream.write(byte[] buffer int offset int maxlen) записує максимальну кількість байтів даних із буфера в конвеєрний вихідний потік. Метод блокується, якщо в потік не записуються байти. 

Синтаксис: 

    public void write(byte[] buffer int offset int maxlen)     

Parameters :
buffer : data of the buffer
offset : starting in the destination array - 'buffer'.
maxlen : maximum length of array to be read

Return : void
Exception :
-> IOException : if in case IO error occurs.
Java
// Java program illustrating the working of PipedInputStream // write(byte[] buffer int offset int maxlen) import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException  {  PipedInputStream geek_input = new PipedInputStream();  PipedOutputStream geek_output = new PipedOutputStream();  // Use of connect() : connecting geek_input with geek_output  geek_input.connect(geek_output);  byte[] buffer = {'J' 'A' 'V' 'A'};  // Use of write(byte[] buffer int offset int maxlen)  geek_output.write(buffer 0 4);  int a = 5;  System.out.print('Use of write(buffer offset maxlen) : ');  while(a>0)  {  System.out.print(' ' + (char) geek_input.read());  a--;  }  } } 

Вихід: 

один мільйон у цифрах
Use of write(buffer offset maxlen) : J A V A  
  • close() : java.io.PipedOutputStream.close() закриває конвеєрний вихідний потік і звільняє виділені ресурси. 
    Синтаксис: 
public void close()  
Parameters :
--------------
Return :
void
Exception :
-> IOException : if in case IO error occurs.
  • connect(призначення PipedInputStream) : java.io.PipedOutputStream.connect(призначення PipedInputStream з’єднує конвеєрний вихідний потік із «цільовим» конвеєрним вхідним потоком і, якщо «місцем призначення» є канали з якимось іншим потоком, створюється виняткова ситуація IO 
    Синтаксис: 
public void connect(PipedInputStream destination)  
Parameters :
destination : the Piped Input Stream to be connected to
Return :
void
Exception :
-> IOException : if in case IO error occurs.
  • flush() : java.io.PipedOutputStream.flush() очищає вихідний потік. 
    Синтаксис: 
public void flush()  
Parameters :
------------
Return :
void
Exception :
-> IOException : if in case IO error occurs.

Код Java, який ілюструє роботу методів класу PipedOutputStream: 

Java
// Java program illustrating the working of PipedInputStream // write() write(byte[] buffer int offset int maxlen) // close() flush() connect() import java.io.*; public class NewClass {  public static void main(String[] args) throws IOException  {  PipedInputStream geek_input = new PipedInputStream();  PipedOutputStream geek_output = new PipedOutputStream();  try  {  // Use of connect() : connecting geek_input with geek_output  geek_input.connect(geek_output);  // Use of write(int byte) :  geek_output.write(71);  geek_output.write(69);  geek_output.write(69);  geek_output.write(75);  geek_output.write(83);  // Use of flush() method :  geek_output.flush();  System.out.println('Use of flush() method : ');  int i = 5;  while(i > 0)  {  System.out.print(' ' + (char) geek_input.read());  i--;  }  // USe of close() method :  System.out.println('nClosing the Output stream');  geek_output.close();  }  catch (IOException except)  {  except.printStackTrace();  }  } } 

Вихід: 

Use of flush() method :   
G E E K S
Closing the Output stream


 

Створіть вікторину