`
85977328
  • 浏览: 1873295 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java NIO(十一)Pipe

    博客分类:
  • nio
 
阅读更多
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 = inChannel.read(buf);

read()方法返回的int值会告诉我们多少字节被读进了缓冲区。
  • 大小: 7.6 KB
分享到:
评论

相关推荐

    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 视频教程

    ·00. 尚硅谷__NIO__源码、课件 ·01. 尚硅谷_NIO_NIO 与 IO 区别 ·02. 尚硅谷_NIO_缓冲区(Buffer)的数据存取 ·03. 尚硅谷_NIO_直接缓冲区与非直接缓冲区 ·04. 尚硅谷_NIO_通道(Channel)的... 尚硅谷_NIO_Pipe 管道

    2021最新-Java NIO视频教程-视频教程网盘链接提取码下载 .txt

    教程内容涵盖:阻塞和非阻塞IO、Channel通道、Buffer缓冲区、Selector选择器、Pipe管道、FileLock文件锁,以及Path、Files、异步FileChannel和Charset字符编码等,并通过一个多人聊天室的综合案例,把所有的NIO知识...

    mina:Java Nio Apache Mina Java Nio

    java-nio java-nio 通道表示到实体,如硬件设备、文件、网络套接字或可以执行一个或多个不同 I/O 操作(如读取或写入)的程序组件的开放的连接。 在以往的java的IO操作的过程中都是面向字节流操作,并且读写操作是...

    Java NIO与IO的差别和比较

     NIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。  1. Buffer:它是包括数据且用于读写的线形表结构。当中还提供了一个特殊类用于内存映射文件的I/O操作。  2. ...

    dirwatch:Clojure目录观察程序,包装了JDK 7 java.nio.file.WatchService

    目录监视 监视目录以查找更改。 类似于t望塔(但使用JDK 7异步... ( watch-dir println ( clojure.java.io/file " /tmp " )) 执照 版权所有:copyright:2013 JUXT。 与clojure一样,根据Eclipse Public License分发。

    PipeImpl.rar_Java编程_Unix_Linux_

    Implements java.nio.channels.Pipe for Embedded Linux.

    javaNIOnetty

    java NIO pdf 带页码,适合学习下载Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此...

    cindy-3.0b1-bin开发包

    Cindy是一个Java异步I/O框架,提供了一个统一高效的模型,同时支持TCP、UDP以及Pipe,并能够方便的在异步和同步操作之间进行切换。目前其实现是基于Java NIO,并计划通过JNI来支持各操作系统上本身提供的异步I/O功能...

    socket.zip

    本人亲自编写测试通过的javaIO流、pipe通道、NIO、AIO等各种socket编程代码,可以让你更加深入的体会到线程间的通信,以及同步、异步、阻塞、非阻塞等各种实现

Global site tag (gtag.js) - Google Analytics