nio相對於io來說,增加了乙個通道的 channel
public static void test3() throws exception
outchannel.close();
inchannel.close();
fileoutputstream.close();
fileinputstream.close();
}
首先就是先建立檔案輸入流(fileinputstream )和檔案輸出流(fileoutputstream ),
fileinputstream fileinputstream = new fileinputstream("d:");輸入流和輸出流的區別是。輸入流從檔案中往記憶體中寫入東西,而輸出流是從記憶體中往檔案裡寫入東西。這個輸入輸出是針對記憶體而言。我之前就是經常弄反。fileoutputstream fileoutputstream = new fileoutputstream("d:");
根據兩個留分別生成對應的通道。
filechannel inchannel = fileinputstream.getchannel();建立字元緩衝區陣列filechannel outchannel = fileoutputstream.getchannel();
bytebuffer b = bytebuffer.allocate(1024);然後就是依次讀取,當輸入流讀的!=-1 就持續讀取。
在讀取的過程中,往檔案中寫入資料。
然後把通道和檔案io流關閉即可。
Java NIO 通道(二)通道分散 聚集
基於通道,nio又提供了另乙個重要功能,分散 scatter 和聚集 gather scatter 分散 指的是從通道中讀取 read 資料分散到多個緩衝區buffer中,該過程會將每個緩衝區填滿,直到通道中無資料或者緩衝區沒有空間。gather 聚集 指的是將多個緩衝區buffer聚集起來寫入 w...
Java NIO 入門學習 通道和緩衝區
對於 nio 來說,channel 通道 和 buffer 緩衝區 這兩個東西是不得不提的,因為它們是 nio 的核心物件,幾乎每乙個 i o 操作都要它們。通道是對原 i o 流的模擬,但有不同的是它是雙向的,不再像流那樣分 inputstream 和 outputstream,通道的雙向性更好的...
Go從入門到精通 關閉通道後繼續使用通道
通道是乙個引用物件,和 map 類似。map 在沒有任何外部引用時 go 程式在執行 runtime 會自動對記憶體進行垃圾 garbage collection,gc 類似的,通道也可以被垃圾 但是通道也可以被主動關閉的。使用 close 來關閉乙個通道 close ch 關閉的通道依然可以被訪問...