Java-NIO(九):管道 (Pipe)
阿新 • • 發佈:2017-08-01
png bsp java nio pri java-nio ges 線程 pre logs
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(九):管道 (Pipe)