• Java NIO学习笔记八 Pipe


    Java NIO Pipe

      Java NIO管道是两个线程之间的单向数据连接。Pipe 具有源信道和接受通道。您将数据写入sink通道。然后可以从源通道读取该数据。

    这是一个原理的Pipe流程图

    Java NIO:管内部
    Java NIO:Pipe Internals

    创建管道

    你打开一个Pipe通过调用该Pipe.open()方法。

    代码:

    Pipe pipe = Pipe.open();

    向管写入信息

    要写入Pipe你需要访问接收器通道。

    代码:

    Pipe.SinkChannel sinkChannel = pipe.sink();

    通过SinkChannel调用write() 方法来写,

    代码:

    String newData =“要写入文件的新字符串...”+ System.currentTimeMillis();
    
    ByteBuffer buf = ByteBuffer.allocate(48);
    buf.clear();
    buf.put(newData.getBytes());
    
    buf.flip();
    
    while(buf.hasRemaining()){
        sinkChannel.write(BUF);
    }

    从管道读取数据

    要从中读取,Pipe您需要访问源通道。

    代码:

    Pipe.SourceChannel sourceChannel = pipe.source();

    要从源通道读取,调用read()方法:

    ByteBuffer buf = ByteBuffer.allocate(48);
    
    int bytesRead = inChannel.read(buf);

    read()方法返回的int值,表明向缓冲区中读取多少个字节。

  • 相关阅读:
    Qt禁止调整窗口的大小
    CentOS 6.2修改主机名
    怎么培养新人
    软件的质量控制
    如何留住骨干
    物化视图索引引发的问题
    Oracle查询脚本优化
    Oracle视图编译错误解决办法
    spring切面配置,代理用jdk和cglib的区别
    Tomcat起了一个测试桩,调用该测试桩无响应
  • 原文地址:https://www.cnblogs.com/kuoAT/p/7019039.html
Copyright © 2020-2023  润新知