Java Pipe

一、Pipe管道

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

二、案例

  1. @Test
  2. public void pipeTest() throws IOException {
  3. // 1.获取管道
  4. Pipe pipe = Pipe.open();
  5. // 2.将缓冲区中的数据写入管道
  6. ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
  7. Pipe.SinkChannel sinkChannel = pipe.sink();
  8. byteBuffer.put("通过单向管道发送数据".getBytes());
  9. byteBuffer.flip();
  10. sinkChannel.write(byteBuffer);
  11. // 3.读取缓冲区中的数据
  12. Pipe.SourceChannel sourceChannel = pipe.source();
  13. byteBuffer.flip();
  14. System.out.println(new String(byteBuffer.array(), 0, sourceChannel.read(byteBuffer)));
  15. sourceChannel.close();
  16. sinkChannel.close();
  17. }