欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Java NIO 简例】Pipe

程序员文章站 2022-03-07 19:20:49
...

原文:《Java NIO Pipe

Java NIO 的 Pipe 是一个线程间的单向数据连接。一个Pipe有一个 source channel 和 一个 sink channel。你可以向 sink channel 写入数据。这些数据可以从 source channel 中被读出。

简化结构如下:

【Java NIO 简例】Pipe
            
    
    博客分类: Java nio 
 

创建Pipe

Pipe pipe = Pipe.open();

 

向Pipe写数据

向Pipe写数据就是向其中的 sink channel 写数据:

Pipe.SinkChannel sinkChannel = pipe.sink();
// byte[] data = ...
ByteBuffer buffer = ByteBuffer.allocate(data.length);
buffer.clear();
buffer.put(data);
buffer.flip();
while (buffer.hasRemaining()) {
  sinkChannel.write(buffer);
}

 

从Pipe读数据

从Pipe读数据就是从其中的 source channel 读数据:

PipeChannel.SourceChannel sourceChannel = pipe.source();
ByteBuffer buffer = ByteBuffer.allocate(1024);
int readByteCount = sourceChannel.read(buffer);

readByteCount 表明此次从 channel 读到 buffer 的字节数。

 

  • 【Java NIO 简例】Pipe
            
    
    博客分类: Java nio 
  • 大小: 13.3 KB
相关标签: nio