1. 首页
  2. Java NIO教程

第12篇:Java NIO系列教程(十一) Pipe

原文链接 作者:Jakob Jenkov 译者:黄忠 校对:丁一

Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。

这里是Pipe原理的图示:

ioxiliejiaochengshiyipipe_1.png

创建管道

通过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 = sourceChannel.read(buf);

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

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java NIO系列教程(十一) Pipe


作者:并发编程网

来源:http://ifeve.com/pipe/


JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

标题:第12篇:Java NIO系列教程(十一) Pipe

链接:https://www.javajike.com/article/1089.html

« 第13篇:Java NIO系列教程(十二) Java NIO与IO
第11篇:Java NIO系列教程(十) Java NIO DatagramChannel»

相关推荐

QR code