AI-generated Key Takeaways
-
A
Pipe
in Java NIO is a unidirectional communication channel consisting of a sink for writing and a source for reading data. -
Data written to the sink channel can be read from the source channel in the order it was written.
-
Blocking behavior during writes depends on the system and whether the buffer between the channels is full.
-
Pipe
provides methods to open a pipe and access its sink and source channels for data transfer. -
It's worth noting that buffering between the sink and source channels is implementation-specific and not guaranteed.
A pair of channels that implements a unidirectional pipe.
A pipe consists of a pair of channels: A writable sink
channel and a readable source
channel. Once some bytes are written to the sink channel they can be read
from source channel in exactlyAthe order in which they were written.
Whether or not a thread writing bytes to a pipe will block until another thread reads those bytes, or some previously-written bytes, from the pipe is system-dependent and therefore unspecified. Many pipe implementations will buffer up to a certain number of bytes between the sink and source channels, but such buffering should not be assumed.
Nested Class Summary
class | Pipe.SinkChannel | A channel representing the writable end of a Pipe . |
|
class | Pipe.SourceChannel | A channel representing the readable end of a Pipe . |
Protected Constructor Summary
Pipe()
Initializes a new instance of this class.
|
Public Method Summary
static Pipe |
open()
Opens a pipe.
|
abstract Pipe.SinkChannel |
sink()
Returns this pipe's sink channel.
|
abstract Pipe.SourceChannel |
source()
Returns this pipe's source channel.
|
Inherited Method Summary
Protected Constructors
protected Pipe ()
Initializes a new instance of this class.
Public Methods
public static Pipe open ()
Opens a pipe.
The new pipe is created by invoking the openPipe
method of the
system-wide default SelectorProvider
object.
Returns
- A new pipe
Throws
IOException | If an I/O error occurs |
---|
public abstract Pipe.SinkChannel sink ()
Returns this pipe's sink channel.
Returns
- This pipe's sink channel
public abstract Pipe.SourceChannel source ()
Returns this pipe's source channel.
Returns
- This pipe's source channel