NIO使用小結

2021-09-22 03:26:10 字數 1304 閱讀 6189

所謂的nio,是new io的縮寫,它提供了buffer的功能來提交io的效能。jdk從1.4之後開始提供相關操作。

基本結構:buffer抽象類的一系列子類實現,其中booleanbuffer不存在,也沒必要緩衝。具體如下:bytebuffer,

byteorder,

charbuffer,

doublebuffer,

floatbuffer,

intbuffer

longbuffer

shortbuffer

同時針對各中資料結構,提供了通道(channel)的概念,可以針對該資料結構進行雙向操作。

bytebuffer bytebuffer = bytebuffer.allocate(

1024

); bytebuffer.put("hello wolrd"

.getbytes()); 

system.out.println(bytebuffer.position()); 

system.out.println(bytebuffer.capacity()); 

system.out.println(bytebuffer.limit()); 

例2:檔案內容拷貝

string infile = 

"c:\\from.txt"

;   

string outfile = "c:\\to.txt"

;   

// 獲取原始檔和目標檔案的輸入輸出流  

fileinputstream fin = new

fileinputstream(infile);   

fileoutputstream fout = new

fileoutputstream(outfile);   

// 獲取輸入輸出通道  

filechannel fcin = fin.getchannel();   

filechannel fcout = fout.getchannel();   

// 建立緩衝區  

bytebuffer buffer = bytebuffer.allocate(1024

);   

while

(true

)    

// flip方法讓緩衝區可以將新讀入的資料寫入另乙個通道  

buffer.flip();   

// 從輸出通道中將資料寫入緩衝區  

fcout.write(buffer);   

}   

更多例子,參考:

學習NIO小結

nio 同步非阻塞 在jdk1.4時推出,和傳統的io 同步阻塞 比較有著新的思想,在網上學習和整理知識點時知道學習nio可分為3個部分 1.channel 通道,資料的讀取和寫入都可以通過它來完成。2.selector 選擇器,用於選擇註冊在通道中的已發生的事件。3.bytebuffer 乙個新的...

Nio基本使用

io分為兩類,一類是檔案io,另一類就是網路io。jdk1.4新增了了nio,以往的io讀寫都是阻塞式的,如果io流中沒有可讀寫的資料時,那麼程式就會阻塞,知道有資料可以讀寫,效率低下。nio就是為了改善這種情況推出的。nio有兩個關鍵物件,乙個是channel,另乙個是buffer,channel...

nio基本使用

nio速度的提高來自於所使用的結構更接近於作業系統執行i o的方式 通道和緩衝器。我們可以把它想象成乙個煤礦,通道是乙個包含煤層 資料 的礦藏,而緩衝器則是派送到礦藏的卡車。卡車載滿煤炭而歸,我們再從卡車上獲得煤炭。也就是說,我們並沒有直接和通道互動,我們只是和緩衝器互動,並且把緩衝器派送到通道。通...