Java NIO 入門二 使用通道複製檔案

2021-09-10 06:31:00 字數 815 閱讀 8103

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 關閉的通道依然可以被訪問...