Java NIO 管道是2個線程之間的單向數據連接。
Pipe有一個source通道和一個sink通道。數據會被寫到sink通道,從source通道讀取。
舉個例子:
package com.soyoungboy.nio; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.Pipe; import org.junit.Test; public class TestPipe { @Test public void test1() throws IOException{ //1. 獲取管道 Pipe pipe = Pipe.open(); //2. 將緩沖區中的數據寫入管道 ByteBuffer buf = ByteBuffer.allocate(1024); Pipe.SinkChannel sinkChannel = pipe.sink(); buf.put("通過單向管道發送數據".getBytes()); buf.flip(); sinkChannel.write(buf); //3. 讀取緩沖區中的數據 Pipe.SourceChannel sourceChannel = pipe.source(); buf.flip(); int len = sourceChannel.read(buf); System.out.println(new String(buf.array(), 0, len)); sourceChannel.close(); sinkChannel.close(); } }