Class PipedOutputStream
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
PipedOutputStream object by one thread and data is
read from the connected PipedInputStream by some
other thread. Attempting to use both objects from a single thread
is not recommended as it may deadlock the thread.
The pipe is said to be broken if a
thread that was reading data bytes from the connected piped input
stream is no longer alive.- Since:
- 1.0
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a piped output stream that is not yet connected to a piped input stream.Creates a piped output stream connected to the specified piped input stream. -
Method Summary
All MethodsInstance MethodsConcrete MethodsModifier and TypeMethodDescriptionvoidclose()Closes this piped output stream and releases any system resources associated with this stream.voidconnect(PipedInputStream snk)Connects this piped output stream to a receiver.voidflush()Flushes this output stream and forces any buffered output bytes to be written out.voidwrite(byte[] b, int off, int len)Writeslenbytes from the specified byte array starting at offsetoffto this piped output stream.voidwrite(int b)Writes the specifiedbyteto the piped output stream.Methods declared in class java.io.OutputStream
nullOutputStream, write
-
Constructor Details
-
PipedOutputStream
Creates a piped output stream connected to the specified piped input stream. Data bytes written to this stream will then be available as input fromsnk.- Parameters:
snk- The piped input stream to connect to.- Throws:
IOException- if an I/O error occurs.
-
PipedOutputStream
public PipedOutputStream()Creates a piped output stream that is not yet connected to a piped input stream. It must be connected to a piped input stream, either by the receiver or the sender, before being used.- See Also:
-
-
Method Details
-
connect
Connects this piped output stream to a receiver. If this object is already connected to some other piped input stream, anIOExceptionis thrown.If
or the call: The two calls have the same effect.snkis an unconnected piped input stream andsrcis an unconnected piped output stream, they may be connected by either the call:- Parameters:
snk- the piped input stream to connect to.- Throws:
IOException- if an I/O error occurs.
-
write
Writes the specifiedbyteto the piped output stream.Implements the
writemethod ofOutputStream.- Specified by:
writein classOutputStream- Parameters:
b- thebyteto be written.- Throws:
IOException- if the pipe is broken,unconnected, closed, or if an I/O error occurs.
-
write
Writeslenbytes from the specified byte array starting at offsetoffto this piped output stream. This method blocks until all the bytes are written to the output stream.- Overrides:
writein classOutputStream- Parameters:
b- the data.off- the start offset in the data.len- the number of bytes to write.- Throws:
IOException- if the pipe is broken,unconnected, closed, or if an I/O error occurs.IndexOutOfBoundsException- Ifoffis negative,lenis negative, orlenis greater thanb.length - off
-
flush
Flushes this output stream and forces any buffered output bytes to be written out. This will notify any readers that bytes are waiting in the pipe.- Specified by:
flushin interfaceFlushable- Overrides:
flushin classOutputStream- Throws:
IOException- if an I/O error occurs.
-
close
Closes this piped output stream and releases any system resources associated with this stream. This stream may no longer be used for writing bytes.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException- if an I/O error occurs.
-
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2025, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.