Java中的NIO详解Day11-Pipe

桃扇骨 2023-03-05 03:19 79阅读 0赞

Pipe

  • 基本概念
  • 管道的创建
  • 向管道写入数据
  • 从管道读取数据

基本概念

  • Java NIO中的管道是两个线程之间的单向数据连接
  • Pipe中有一个sink通道和source通道:

    • 数据会被写到sink通道
    • 数据会从source通道读取
  • Pipe原理:
    在这里插入图片描述

管道的创建

  • 通过调用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()) {

    1. sinkChannel.write(byteBuffer);

    }

从管道读取数据

  • 要从管道Pipe中读取数据,需要访问source通道:

    Pipe.SourceChannel sourceChannel = pipe.source();

  • 通过调用SourceChannelread() 方法,从sourceChannel读取数据:

    ByteBuffer byteBuffer = ByteBuffer.allocate(64);
    int bytesRead = sourceChannel.read(byteBuffer);

发表评论

表情:
评论列表 (有 0 条评论,79人围观)

还没有评论,来说两句吧...

相关阅读