Java NIO Pipe

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java NIO Pipe脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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

这里是Pipe原理的图示:

clipboard.png

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

Pipe @H_512_25@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值会告诉我们多少字节被读进了缓冲区。

脚本宝典总结

以上是脚本宝典为你收集整理的Java NIO Pipe全部内容,希望文章能够帮你解决Java NIO Pipe所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。