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 }
本文介绍Java NIO管道通信的基本原理及使用方法。通过一个简单的示例展示了如何利用Java NIO的Pipe进行两个线程间的数据传递。具体包括Pipe的创建、数据的写入与读取等步骤。
:管道 Pipe&spm=1001.2101.3001.5002&articleId=78853801&d=1&t=3&u=1c63267985624cb99ea08ba911917937)

被折叠的 条评论
为什么被折叠?



