`
wbj0110
  • 浏览: 1549246 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Java NIO系列教程(十一) Pipe

    博客分类:
  • NIO
Nio 
阅读更多

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

这里是Pipe原理的图示:

 

创建管道

通过Pipe.open()方法打开管道。例如:

1 Pipe pipe = Pipe.open();

向管道写数据

要向管道写数据,需要访问sink通道。像这样:

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

通过调用SinkChannel的write()方法,将数据写入SinkChannel,像这样:

01 String newData = "New String to write to file..." + System.currentTimeMillis();
02 ByteBuffer buf = ByteBuffer.allocate(48);
03 buf.clear();
04 buf.put(newData.getBytes());
05  
06 buf.flip();
07  
08 while(buf.hasRemaining()) {
09     sinkChannel.write(buf);
10 }

从管道读取数据

从读取管道的数据,需要访问source通道,像这样:

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

调用source通道的read()方法来读取数据,像这样:

1 ByteBuffer buf = ByteBuffer.allocate(48);
2  
3 int bytesRead = sourceChannel.read(buf);

read()方法返回的int值会告诉我们多少字节被读进了缓冲区。

http://ifeve.com/pipe/

分享到:
评论

相关推荐

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/...Java NIO系列教程(十一) Pipe Java NIO系列教程(十二) Java NIO与IO

    Java NIO系列教程(一) Java NIO 概述

    Java NIO系列教程(一) Java NIO 概述

    Java NIO系列教程

    Java NIO系列教程 Java NIO Channel Buffer Selector SocketChannel

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...

    JavaNIO中文教程1.pdf

    JavaNIO中文教程1.pdf

    java NIO详细教程

    java NIO详细教程,包括使用背景,实现原理,代码实现

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    Java NIO中文教程

    Java NIO(New IO)是 Java IO API 的替代方案(从 Java 1.4 开始), 它替代标准的 Java IO 和 Java 网络 API。 Java NIO 提供了与标准 IO 不同的 IO 工作方式。 英文原版由知名的Jenkov编写而成。原文链接:...

    Java语言基础教程-Java NIO流篇2

    Java语言基础教程-Java NIO流篇2Java语言基础教程-Java NIO流篇2

    java nio 包读取超大数据文件

    Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...

    Java NIO英文高清原版

    Java NIO英文高清原版

    java NIO 中文版

    讲解了 JavaIO 与 JAVA NIO区别,JAVA NIO设计理念,以及JDK中java NIO中语法的使用

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...

    java nio 实现socket

    java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket

    java nio教程pdf

    Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。 ...

    Java-NIO2教程

    比较详尽地介绍了JDK1.7开始支持的NIO2技术。 有兴趣的开发者可以了解一下。

    java nio中文版

    java NIO是 java New IO 的简称,在 jdk1.4 里提供的新 api 。 Sun 官方标榜的特性如下: – 为所有的原始类型提供 (Buffer) 缓存支持。 – 字符集编码解码解决方案。 – Channel :一个新的原始 I/O 抽象。 – 支持...

    Java NIO 系列教程1

    声明:ITeye精华章的版权属于ITeye站所有,严禁任何站转载本,否则必将追究法律责任!< > 猎头职位: 上海: Junior Product Manage

    java网络编程NIO视频教程

    01-Java NIO-课程简介.mp4 02-Java NIO-概述.mp4 03-Java NIO-Channel-概述.mp4 04-Java NIO-Channel-FileChannel(介绍和示例).mp4 05-Java NIO-Channel-FileChannel详解(一).mp4 06-Java NIO-Channel-FileChannel...

    Java Nio selector例程

    java侧起server(NioUdpServer1.java),基于Java Nio的selector 阻塞等候,一个android app(NioUdpClient1文件夹)和一个java程序(UI.java)作为两个client分别向该server发数据,server收到后分别打印收到的消息...

Global site tag (gtag.js) - Google Analytics