NIO支援管道操作。管道模型如下所示:
管道通常用來兩個線程來傳輸資料。
其中SinkChannel用于往Pipe中寫資料,SourceChannel用于從Pipe中讀資料。
1.建立管道
Pipe pipe = Pipe.open();
2.寫管道
Pipe.SinkChannel sinkChannel = pipe.sink();
String newData = "New String to write to file..." + System.currentTimeMillis();
ByteBuffer buf = ByteBuffer.allocate();
buf.clear();
buf.put(newData.getBytes());
buf.flip();
while(buf.hasRemaining()) {
sinkChannel.write(buf);
}
3.讀管道
Pipe.SourceChannel sourceChannel = pipe.source();
ByteBuffer buf = ByteBuffer.allocate();
int bytesRead = sourceChannel.read(buf);
read的傳回值表示讀到的位元組數。