1 @Test

2 public void testPipe() throws IOException {

3 // 1、获取通道

4 Pipe pipe = Pipe.open();

5

6 // 2、获取sink管道,用来传送数据

7 Pipe.SinkChannel sinkChannel = pipe.sink();

8

9 // 3、申请一定大小的缓冲区

10 ByteBuffer byteBuffer = ByteBuffer.allocate(1024);

11 byteBuffer.put("123232142345234".getBytes());

12 byteBuffer.flip();

13

14 // 4、sink发送数据

15 sinkChannel.write(byteBuffer);

16

17 // 5、创建接收pipe数据的source管道

18 Pipe.SourceChannel sourceChannel = pipe.source();

19 // 6、接收数据,并保存到缓冲区中

20 ByteBuffer byteBuffer2 = ByteBuffer.allocate(1024);

21 byteBuffer2.flip();

22 int length = sourceChannel.read(byteBuffer2);

23

24 System.out.println(new String(byteBuffer2.array(), 0, length));

25

26 sourceChannel.close();

27 sinkChannel.close();

28

29 }

java nio pipe_NIO之管道 (Pipe)详解相关推荐

  1. JAVA NIO缓冲区(Buffer)------ByteBuffer常用方法详解

    缓冲区(Buffer) 缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区: 使用缓冲区有这么两个好处: 1.减少实际 ...

  2. linux管道pipe详解

    管道 管道的概念: 管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递.调用pipe系统函数即可创建一个管道.有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两个 ...

  3. Java NIO学习篇之PosixFilePermission详解

    定义: PosixFilePermission是一个枚举类,代表着文件的基本权限. public enum PosixFilePermission {/*** 文件所有者的读权限*/OWNER_REA ...

  4. Java NIO学习篇之StandardOpenOption详解

    定义: StandardOpenOption是一个枚举类,代表着文件连接时的标准选项.通常可以多个选项一起使用. public enum StandardOpenOption implements O ...

  5. python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解

    问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...

  6. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

  7. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  8. Java中的异常和处理详解

    Java中的异常和处理详解 参考文章: (1)Java中的异常和处理详解 (2)https://www.cnblogs.com/lulipro/p/7504267.html 备忘一下.

  9. java string()函数_转载java String.split()函数的用法详解

    转载java String.split()函数的用法详解 如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!在java.lang包中有String.split()方法的原型是: p ...

最新文章

  1. oracle home 命令,$ORACLE_HOMEbin目录下所有命令的使用方法及命令详解
  2. javascript判断数组是否包含了指定的元素
  3. Linux 性能分析工具总结
  4. webstorm下debug调试react js程序
  5. 【Linux网络编程】原始套接字能干什么?
  6. 华为服务器故障灯不开机_华为服务器日常维护及故障处理介绍V.ppt
  7. java mysql读取多条数据_myeclipse 使用Java访问mysql数据库,数据库中有多条记录,为何只能读出一条数据??...
  8. 升级python以及安装anaconda
  9. 王者归来!华为P40 Pro渲染图曝光:后置矩阵徕卡五摄模组
  10. Android TextView 使用替换构建出不同样式的字符串
  11. 编程之美二进制一的个数
  12. keil转换c为汇编语言,如何用Keil生成bin、汇编、C与汇编混合文件?
  13. 鸿蒙大陆7.1正式版隐藏英雄,守塔V7.01下载 守塔V7.01正式版 附游戏攻略及隐藏英雄密码 魔兽防守地图 下载-脚本之家...
  14. ad自动布线过孔_AD15布线方法汇总
  15. VS2010出现“automation服务器不能创建对象“
  16. 戴尔计算机管理界面在哪里,戴尔 win10系统控制面板如何打开?
  17. 大数据下机械智能诊断的机遇与挑战,阅读文献系列(一)
  18. U盘数据恢复的实现?
  19. html收藏夹导入mac,Mac浏览器导入其他浏览器收藏-功能说明
  20. 基于粒子群算法的水电站中长期发电优化调度

热门文章

  1. linux通过pid查看进程信息
  2. 实现两视频叠加时上层剪辑透明部分不遮挡下层内容的两种方案
  3. nvm是做什么的?nvm怎么使用
  4. library的英语怎么读音_library的英语怎么读音_这样学英语,方法老土,却很有效...
  5. asp.net工作流开发分享
  6. 20行python代码入门网络爬虫全流程:使用BeautifulSoup抓取当日人民银行外汇数据
  7. 启动马达接线实物图_星三角降压启动实物接线图.jpg
  8. android 内存优化详解
  9. 哈工大2020秋算法设计与分析大作业(一)
  10. star ccm java api_Star-CCM+二次开发中常用Java小程序