Java NIO(十一)Pipe

系统 1274 0
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。
这里是Pipe原理的图示:
Java NIO(十一)Pipe

创建管道
通过Pipe.open()方法打开管道。例如:
    Pipe pipe = Pipe.open();
  


向管道写数据
要向管道写数据,需要访问sink通道。像这样:
    Pipe.SinkChannel sinkChannel = pipe.sink();
  

通过调用SinkChannel的write()方法,将数据写入SinkChannel,像这样:
    
String newData = "New String to write to file..." + System.currentTimeMillis();
ByteBuffer buf = ByteBuffer.allocate(48);
buf.clear();
buf.put(newData.getBytes());
buf.flip();
while(buf.hasRemaining()) {
    sinkChannel.write(buf);
}

  


从管道读取数据
从读取管道的数据,需要访问source通道,像这样:
    Pipe.SourceChannel sourceChannel = pipe.source();
  

调用source通道的read()方法来读取数据,像这样:
    
ByteBuffer buf = ByteBuffer.allocate(48);
int bytesRead = inChannel.read(buf);

  

read()方法返回的int值会告诉我们多少字节被读进了缓冲区。

Java NIO(十一)Pipe


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论