Java NIO 管道是两个线程之间的单向数据连接。Pipe有一个source通道和sink通道(内部类)。数据会被写到sink通道,从source通道读取。
给一张Pipe通道的原理图:
创建管道:
Pipe pipe = Pipe.open();
向管道写数据:
Pipe.SinkChannel sinkChannel = pipe.sink(); String str = "some things";ByteBuffer buf = ByteBuffer.allcote(1024);buf.clear();buf.put(str.getBytes());buf.flip(); while(buf.hasRemaining()){ sinkChannel.write(buf)}
从管道读数据:
Pipe.SourceChannel sourceChannel = pipe.source(); ByteBuffer buf = ByteBuffer.allcote(1024);int bytr = sourceChannel.read(buf);
read()方法返回的int值会告诉我们写入了多少个字节到缓冲区
原文地址:https://www.cnblogs.com/yushangzuiyue/p/8471702.html
时间: 2024-10-03 14:24:18