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

代码使用示例:

 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)相关推荐

  1. 海纳百川而来的一篇相当全面的Java NIO教程

    目录 零.NIO包 一.Java NIO Channel通道 Channel的实现(Channel Implementations) Channel的基础示例(Basic Channel Exampl ...

  2. Java NIO (五) 管道 (Pipe)

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

  3. 转:Java NIO系列教程(九) Pipe

    Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 这里是Pipe原理的图示: 创建管道 通过Pi ...

  4. Java NIO 学习笔记(五)----路径、文件和管道 Path/Files/Pipe

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  5. javaNIO实战9----> java NIO的Pipe管道实战

    1.Pipe管道通常使用在对条线程之间共享数据的场景,模型如下图所示: 2.实战案例 @Testpublic void nioPipe() throws IOException, Interrupte ...

  6. NIO详解(十一):线程间通信管道Pipe

    1. 概述 Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取.下面是Pipe原理的图示: 当有两个 ...

  7. Java NIO系列教程(十一) Pipe

    转载自  Java NIO系列教程(十一) Pipe 原文链接     作者:Jakob Jenkov     译者:黄忠       校对:丁一 Java NIO 管道是2个线程之间的单向数据连接. ...

  8. 断开的管道 java.io.IOException: Broken pipe 解决方法

    断开的管道 java.io.IOException: Broken pipe 解决方法 一.Broken pipe产生原因分析 1.当访问某个服务突然服务器挂了,就会产生Broken pipe; 2. ...

  9. Java NIO系列教程(九) ServerSocketChannel

    Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.ServerSocketChannel类在 jav ...

最新文章

  1. poj1730Pollard分解
  2. js获取浏览器宽度和高度值
  3. 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事
  4. 20、HTML <textarea>标签(文本域)
  5. 卡片游戏 数学期望
  6. Android中列表动态删除item,如何删除Android ExpandableListView中某个group item的child item?...
  7. 关于sp_generate_inserts使用方法
  8. java并发编程实战读书笔记4--生产者消费者模式和队列
  9. uni中一些插件的使用
  10. vue||简易版音乐播放器
  11. 计算机流程图的画法,程序流程图的基本画法大全
  12. word页码怎么从指定页开始设置?
  13. Justinmind Prototyper中如何使用变量达到一些效果
  14. 云打码的简单使用举例
  15. 基于图数据库的新型肺炎传染图谱建模与分析
  16. package ‘gdm‘ has no installation candidate
  17. vlc 视频局部放大【WPF版】
  18. ps -ef 和ps -aux 和ps aux
  19. 剖析“Flash助手新鲜事 头条”弹窗小广告——Adobe竟和中国广告商同流合污!
  20. VMware12.5.7安装Ubuntu16.04.2失败的解决方案

热门文章

  1. python 人脸检测
  2. 【文本分类】深入理解embedding层的模型、结构与文本表示
  3. CNN阴影去除--DeshadowNet: A Multi-context Embedding Deep Network for Shadow Removal
  4. LeetCode 176. Second Highest Salary--Database--数据库题目
  5. zip压缩报错解决:zip warning: name not matched: xxx/xxx/xxx
  6. matlab里1stopt,请帮忙运行下1stopt 程序?(MATLAB没有解出结果)
  7. APUE(第四章)文件和目录
  8. 知不知道 Thread.sleep(0) 到底有什么用?
  9. 【Netty】传输(Transport)
  10. @available 和 #available