Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。
代码使用示例:
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 }
时间: 2024-11-13 15:37:14