zoukankan      html  css  js  c++  java
  • java nio管道

    管道(Pipe)Top


    (本部分原文链接,作者:Jakob Jenkov,译者:黄忠,校对:丁一) 
    Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 

    这里是Pipe原理的图示: 



    创建管道 

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

    Java代码 
    1. Pipe pipe = Pipe.open();  


    向管道写数据 

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

    Java代码 
    1. Pipe.SinkChannel sinkChannel = pipe.sink();  


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

    Java代码 
    1. String newData = "New String to write to file..." + System.currentTimeMillis();  
    2. ByteBuffer buf = ByteBuffer.allocate(48);  
    3. buf.clear();  
    4. buf.put(newData.getBytes());  
    5.   
    6. buf.flip();  
    7.   
    8. while(buf.hasRemaining()) {  
    9.     <b>sinkChannel.write(buf);</b>  
    10. }  


    从管道读取数据 

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

    Java代码 
    1. Pipe.SourceChannel sourceChannel = pipe.source();  


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

    Java代码 
    1. ByteBuffer buf = ByteBuffer.allocate(48);  
    2.   
    3. int bytesRead = inChannel.read(buf);  


    read()方法返回的int值会告诉我们多少字节被读进了缓冲区。 
  • 相关阅读:
    ios web 媒体查询兼容
    Linux python 虚拟环境管理
    three.js 纹理动画实现
    three.js 在模型上移动相机
    three.js 模型拖动之DragControls控制器
    three.js 添加html内容、文本
    微信公众号对接记录
    事务的日志
    事务的隔离级别
    事务中的锁
  • 原文地址:https://www.cnblogs.com/panxuejun/p/5975513.html
Copyright © 2011-2022 走看看