Java NIO系列教程(十一) Pipe
来源:互联网 发布:cf刷英雄武器软件 编辑:程序博客网 时间:2024/06/09 20:34
Java NIO 管道是2个线程之间的单向数据连接。Pipe
有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。
这里是Pipe原理的图示:
创建管道
通过Pipe.open()
方法打开管道。例如:
Pipe 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值会告诉我们多少字节被读进了缓冲区。
阅读全文
0 0
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十一) Pipe
- scala 资源
- VS一直显示“正在从以下位置***加载符号”的解决办法
- [week 15][Leetcode][Divide and Conquer] Search a 2D Matrix II
- Android自定义控件之触摸事件分发机制
- zabbix自定义item监控项
- Java NIO系列教程(十一) Pipe
- linux中的eval解析
- hdu 5113(dfs+剪枝+回溯)
- Java NIO系列教程(十二) Java NIO与IO
- 6月26日云栖精选夜读:成为一名Java高级工程师你需要学什么
- eclipse里导入项目
- JacaScript预解析
- iOS 小数点键盘的实现(仿微信红包键盘)
- greenDao的使用