java之NIO通道Channel的使用

2021-09-10 01:31:29 字數 1460 閱讀 7031

//1.利用通道完成檔案的複製(非直接緩衝區)

@test

public void test1()

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

}if(inchannel!=null) catch (ioexception e)

}if(fos!=null) catch (ioexception e)

}if(fis!=null) catch (ioexception e)

}} }

//使用直接緩衝區完成檔案的複製(記憶體對映檔案)

@test

public void test2() throws ioexception

//通道之間的資料傳輸(直接緩衝區)

@test

public void test3() throws ioexception

//分散和聚集

@suppresswarnings("resource")

@test

public void test4() throws ioexception;

channel1.read(bufs);

for(bytebuffer bytebuffer:bufs)

system.out.println(new string(bufs[0].array(),0,bufs[0].limit()));

system.out.println("-------------");

system.out.println(new string(bufs[1].array(),0,bufs[1].limit()));

//4.聚集寫入

randomaccessfile raf2 = new randomaccessfile("2.txt","tw");

filechannel channel2 = raf2.getchannel();

channel2.write(bufs);

}

@test

public void test6() throws charactercodingexception

//字串 獲取所有的編碼名稱

@test

public void test5()

}

Java之IO學習 五 NIO選擇器

內容 nio稱為非阻塞io,實現了io的多路復用中的reactor模型,乙個執行緒thread使用選擇器selector通過輪詢的方式監聽 多個通道 channel 因為建立和切換執行緒的開銷很大,因此使用乙個執行緒來處理多個事件而不是乙個執行緒處理乙個事件,對於 io 密集型的應用具有很好地效能。...

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

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

併發之通道

在go 語言裡,我們不僅可以使用原子函式和互斥鎖來保證對共享資源的安全訪問以及消除競爭狀態,還可以使用通道。通過傳送和接收需要共享的資源,在 goroutine 之間做同步。我們通過通道可以共享內建型別 命名型別 結構型別和引用型別的值或者指標。建立無緩衝的整型通道 unbuffered make ...