Java NIO管道
Posted 羽觞醉月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java NIO管道相关的知识,希望对你有一定的参考价值。
Java NIO 管道是两个线程之间的单向数据连接。Pipe有一个source通道和sink通道(内部类)。数据会被写到sink通道,从source通道读取。
给一张Pipe通道的原理图:
创建管道:
Pipe pipe = Pipe.open();
向管道写数据:
Pipe.SinkChannel sinkChannel = pipe.sink();
String str = "some things";
ByteBuffer buf = ByteBuffer.allcote(1024);
buf.clear();
buf.put(str.getBytes());
buf.flip();
while(buf.hasRemaining()){
sinkChannel.write(buf)
}
从管道读数据:
Pipe.SourceChannel sourceChannel = pipe.source();
ByteBuffer buf = ByteBuffer.allcote(1024);
int bytr = sourceChannel.read(buf);
read()方法返回的int值会告诉我们写入了多少个字节到缓冲区
以上是关于Java NIO管道的主要内容,如果未能解决你的问题,请参考以下文章