NIO邊看邊記 之 channel(二)

2021-07-11 14:38:37 字數 770 閱讀 8831

通道channel就像流。通道中的資料總是先讀到到buffer中(對於buffer來說是乙個寫操作),再從buffer中寫到另乙個通道總(相對於buffer來說是乙個讀操作)。

channel主要分為兩類:檔案channel和網路channel,細分為4種。

filechanel:從普通檔案中讀寫資料

datagramchannel:通過udp讀寫網路中的資料

socketchannel:通過tcp讀寫網路中的資料

serversocketchannel:監聽新進來的tcp連線,對每個新進來的連線都建立乙個socketchannel

其中filechannel不可以切換到非阻塞模式,不能應用到selector中。而所有套接字channel都可以應用到非阻塞模式

示例**如下:

public

static

void

main(string args)

bytebuffer.clear();

byteread = filechannel.read(bytebuffer);

}} catch (filenotfoundexception e) catch (ioexception e)

}

NIO邊看邊記 之 管道Pipe(十一)

nio支援管道操作。管道模型如下所示 管道通常用來兩個執行緒來傳輸資料。其中sinkchannel用於往pipe中寫資料,sourcechannel用於從pipe中讀資料。1.建立管道 pipe pipe pipe.open 2.寫管道 pipe.sinkchannel sinkchannel pi...

Apt get 邊看邊記

基於 beret,an apt get primer,http linux.article.pl?sid 04 12 03 177243 但不是完全翻譯,並且有所補充,算是一篇比較入門的有關 debian 的 apt 的文章吧啊。apt get 在debian專案中的地位是無可替代的,如果說有乙個程...

NIO邊看邊記 之 通道之間的資料傳輸(五)

兩個通道之間可以相互傳輸資料,但是至少乙個通道得是檔案channel。從乙個channel中傳輸到另乙個channel,目的channel作為呼叫方。例項 如下 randomaccessfile fromfile new randomaccessfile fromfile.txt rw filech...