码迷,mamicode.com
首页 > 编程语言 > 详细

Java NIO(七)管道

时间:2018-02-26 11:26:03      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:nbsp   flip   src   ini   strong   http   bubuko   图片   bsp   

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(七)管道

标签:nbsp   flip   src   ini   strong   http   bubuko   图片   bsp   

原文地址:https://www.cnblogs.com/yushangzuiyue/p/8471702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!