Java NIO-11.管道

Java NIO管道(Pipe)是两个进程间的单向连接。管道有一个源通道和一个sink通道,往sink通道中写数据,数据就能从source通道中读取。

Pipe Internals

创建管道

调用Pipe.open()方法就能打开一个Pipe:

Pipe pipe = Pipe.open()

往Pipe中写

往Pipe中写,需要访问sink通道,例如:

Pipe.SinkChannel sinkChannel = pipe.sink();

调用SinkChannel的write()方法就能往里面写数据了,例如:

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);
}

从Pipe中读

读Pipe需要访问source通道,就像这样:

Pipe.SourceChannel sourceChannel = pipe.source();

调用source通道的read()方法可以读取里面的数据,例如:

ByteBuffer buf = ByteBuffer.allocate(48);
int bytesRead = inChannel.read(buf);

read()方法返回的int表示读了多少字节的数据到缓冲区中。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JVM-6.内存分配和回收策略

    JDK6之后,只要老年代的连续空间大于新生代的总对象或者历次晋升的平均大小就会进行Minor GC,否则进行Full GC

    悠扬前奏
  • LintCode-111.爬楼梯

    假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?

    悠扬前奏
  • LintCode-82.落单的数

    给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

    悠扬前奏
  • chromatin loops:染色质环简介

    利用5kb分辨率的Hi-C基因组互作图谱,科学家识别到了chromatin loop这种染色质结构,文章发表在cell上,标题如下

    生信修炼手册
  • 【实战】工控网络协议模糊测试:用peach对modbus协议进行模糊测试

    本文来自 熊猫(s_panda) 的投稿 0×00 背景 本人第一次在FB发帖,进入工控安全行业时间不算很长,可能对模糊测试见解出现偏差,请见谅。 在接触工...

    用户1631416
  • 架构设计深入学习02-概念架构与细化架构

    胜兵先胜而后求战,败兵先战而后求胜—《孙子兵法》。 这部分有些内容比较陈旧,但原理和思路还是一致的。 ? 通常来说,概念架构满足"架构=组件+交互"且只关注高...

    用户1216676
  • 004.MySQL主库手动复制至从库

    木二
  • 更改PPT所有页面字体与页面颜色的技巧

    在评估期间,无心插柳地探索到一个新技术,就是关于PPT课件统一更改字体颜色和页面背景颜色的问题。

    用户1191760
  • 聊聊并行并行编程

    所谓性能,更像是可扩展性以及效率。不再聚焦于单个CPU的性能,而是在于平均下来CPU的性能。这个来源于摩尔定律的失效,

    哒呵呵
  • Java设计模式之装饰模式趣谈

    JVM:”上次给我招的工人不错啊!” oo程序员:”………..” JVM:”现在来我开的博物馆生意越来越好了,原来”舞台剧”的方式已经不能满足顾客的需求了”...

    用户1667431

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动