Java NIO學習筆記八 Pipe

Java NIO Pipe

  Java NIO管道是兩個線程之間的單向數據鏈接。Pipe 具備源信道和接受通道。您將數據寫入sink通道。而後能夠從源通道讀取該數據。spa

這是一個原理的Pipe流程圖線程

Java NIO:管內部
Java NIO:Pipe Internals

建立管道

你打開一個Pipe經過調用該Pipe.open()方法。code

代碼:blog

Pipe pipe = Pipe.open();

向管寫入信息

要寫入Pipe你須要訪問接收器通道。ip

代碼:字符串

Pipe.SinkChannel sinkChannel = pipe.sink();

經過SinkChannel調用write() 方法來寫,get

代碼:it

String newData =「要寫入文件的新字符串...」+ System.currentTimeMillis();

ByteBuffer buf = ByteBuffer.allocate(48);
buf.clear();
buf.put(newData.getBytes());

buf.flip();

while(buf.hasRemaining()){
    sinkChannel.write(BUF);
}

 

從管道讀取數據

要從中讀取,Pipe您須要訪問源通道。pip

代碼:table

Pipe.SourceChannel sourceChannel = pipe.source();

要從源通道讀取,調用read()方法:

ByteBuffer buf = ByteBuffer.allocate(48);

int bytesRead = inChannel.read(buf);

read()方法返回的int值,代表向緩衝區中讀取多少個字節。

相關文章
相關標籤/搜索