基本概念
  • Java NIO中的管道是两个线程之间的单向数据连接
  • Pipe中有一个sink通道和source通道:
    • 数据会被写到sink通道
    • 数据会从source通道读取
  • Pipe原理:
    Java中的NIO详解Day11-Pipe_Java教程
管道的创建
  • 通过调用Pipe.open() 方法打开管道Pipe :
Pipe pipe = Pipe.open();
向管道写入数据
  • 要向管道Pipe中写入数据,需要访问sink通道:
Pipe.SinkChannel sinkChannel = pipe.sink();
  • 通过调用SinkChannelwrite() 方法,将数据写入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();
  • 通过调用SourceChannelread() 方法,从sourceChannel读取数据:
ByteBuffer byteBuffer = ByteBuffer.allocate(64);
int bytesRead = sourceChannel.read(byteBuffer);