1 @Test
2 public void testPipe() throws IOException {
3 // 1、获取通道
4 Pipe pipe = Pipe.open();
5
6 // 2、获取sink管道,用来传送数据
7 Pipe.SinkChannel sinkChannel = pipe.sink();
8
9 // 3、申请一定大小的缓冲区
10 ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
11 byteBuffer.put("123232142345234".getBytes());
12 byteBuffer.flip();
13
14 // 4、sink发送数据
15 sinkChannel.write(byteBuffer);
16
17 // 5、创建接收pipe数据的source管道
18 Pipe.SourceChannel sourceChannel = pipe.source();
19 // 6、接收数据,并保存到缓冲区中
20 ByteBuffer byteBuffer2 = ByteBuffer.allocate(1024);
21 byteBuffer2.flip();
22 int length = sourceChannel.read(byteBuffer2);
23
24 System.out.println(new String(byteBuffer2.array(), 0, length));
25
26 sourceChannel.close();
27 sinkChannel.close();
28
29 }