Java中的NIO详解Day11-Pipe
Pipe
- 基本概念
- 管道的创建
- 向管道写入数据
- 从管道读取数据
基本概念
- Java NIO中的管道是两个线程之间的单向数据连接
Pipe中有一个sink通道和source通道:
- 数据会被写到sink通道
- 数据会从source通道读取
- Pipe原理:
管道的创建
通过调用Pipe.open() 方法打开管道Pipe :
Pipe pipe = Pipe.open();
向管道写入数据
要向管道Pipe中写入数据,需要访问sink通道:
Pipe.SinkChannel sinkChannel = pipe.sink();
通过调用SinkChannel的write() 方法,将数据写入sinkChannel:
Byte byteBuffer = ByteBuffer.allocate(64);
byteBuffer.clear();
byteBuffer.put(datas.getBytes());
byteBuffer.flip();
while (byteBuffer.hasRemaining()) {sinkChannel.write(byteBuffer);
}
从管道读取数据
要从管道Pipe中读取数据,需要访问source通道:
Pipe.SourceChannel sourceChannel = pipe.source();
通过调用SourceChannel的read() 方法,从sourceChannel读取数据:
ByteBuffer byteBuffer = ByteBuffer.allocate(64);
int bytesRead = sourceChannel.read(byteBuffer);
还没有评论,来说两句吧...