Java-NIO(九):管道 (Pipe)
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)相关推荐
- 海纳百川而来的一篇相当全面的Java NIO教程
目录 零.NIO包 一.Java NIO Channel通道 Channel的实现(Channel Implementations) Channel的基础示例(Basic Channel Exampl ...
- Java NIO (五) 管道 (Pipe)
Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 如下图: 向管道写数据: 从管道读数据: 1. ...
- 转:Java NIO系列教程(九) Pipe
Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 这里是Pipe原理的图示: 创建管道 通过Pi ...
- Java NIO 学习笔记(五)----路径、文件和管道 Path/Files/Pipe
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- javaNIO实战9----> java NIO的Pipe管道实战
1.Pipe管道通常使用在对条线程之间共享数据的场景,模型如下图所示: 2.实战案例 @Testpublic void nioPipe() throws IOException, Interrupte ...
- NIO详解(十一):线程间通信管道Pipe
1. 概述 Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取.下面是Pipe原理的图示: 当有两个 ...
- Java NIO系列教程(十一) Pipe
转载自 Java NIO系列教程(十一) Pipe 原文链接 作者:Jakob Jenkov 译者:黄忠 校对:丁一 Java NIO 管道是2个线程之间的单向数据连接. ...
- 断开的管道 java.io.IOException: Broken pipe 解决方法
断开的管道 java.io.IOException: Broken pipe 解决方法 一.Broken pipe产生原因分析 1.当访问某个服务突然服务器挂了,就会产生Broken pipe; 2. ...
- Java NIO系列教程(九) ServerSocketChannel
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.ServerSocketChannel类在 jav ...
最新文章
- poj1730Pollard分解
- js获取浏览器宽度和高度值
- 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事
- 20、HTML <textarea>标签(文本域)
- 卡片游戏 数学期望
- Android中列表动态删除item,如何删除Android ExpandableListView中某个group item的child item?...
- 关于sp_generate_inserts使用方法
- java并发编程实战读书笔记4--生产者消费者模式和队列
- uni中一些插件的使用
- vue||简易版音乐播放器
- 计算机流程图的画法,程序流程图的基本画法大全
- word页码怎么从指定页开始设置?
- Justinmind Prototyper中如何使用变量达到一些效果
- 云打码的简单使用举例
- 基于图数据库的新型肺炎传染图谱建模与分析
- package ‘gdm‘ has no installation candidate
- vlc 视频局部放大【WPF版】
- ps -ef 和ps -aux 和ps aux
- 剖析“Flash助手新鲜事 头条”弹窗小广告——Adobe竟和中国广告商同流合污!
- VMware12.5.7安装Ubuntu16.04.2失败的解决方案
热门文章
- python 人脸检测
- 【文本分类】深入理解embedding层的模型、结构与文本表示
- CNN阴影去除--DeshadowNet: A Multi-context Embedding Deep Network for Shadow Removal
- LeetCode 176. Second Highest Salary--Database--数据库题目
- zip压缩报错解决:zip warning: name not matched: xxx/xxx/xxx
- matlab里1stopt,请帮忙运行下1stopt 程序?(MATLAB没有解出结果)
- APUE(第四章)文件和目录
- 知不知道 Thread.sleep(0) 到底有什么用?
- 【Netty】传输(Transport)
- @available 和 #available