3.1.1 打開通道 通道是訪問 I/O 服務(wù)的導(dǎo)管。正如我們?cè)诘谝徽轮兴懻摰?,I/O 可以分為廣義的兩大類別:
File I/O 和 Stream I/O。那么相應(yīng)地有兩種類型的通道也就不足為怪了,它們是文件(file)通道和套接字(socket)通道。如果您參考一下圖 3-2,您就會(huì)發(fā)現(xiàn)有一個(gè)FileChannel 類和三個(gè)socket通道類:SocketChannel 、ServerSocketChannel 和 DatagramChannel 。 通道可以以多種方式創(chuàng)建。Socket通道有可以直接創(chuàng)建新socket通道的工廠方法。但是一個(gè)FileChannel 對(duì)象卻只能通過在一個(gè)打開的RandomAccessFile 、FileInputStream 或 FileOutputStream 對(duì)象上調(diào)用getChannel() 方法來獲取。您不能直接創(chuàng)建一個(gè)FileChannel 對(duì)象。File 和 socket 通道會(huì)在后面的章節(jié)中予以詳細(xì)討論。 - SocketChannel sc = SocketChannel.open();
- sc.connect (new InetSocketAddress ("somehost", someport));
- ServerSocketChannel ssc = ServerSocketChannel.open( );
- ssc.socket( ).bind (new InetSocketAddress (somelocalport));
- DatagramChannel dc = DatagramChannel.open( );
- RandomAccessFile raf = new RandomAccessFile ("somefile", "r");
- FileChannel fc = raf.getChannel();
在 3.5 節(jié)中您會(huì)發(fā)現(xiàn),java.net 的socket類也有新的getChannel() 方法。這些方法雖然能返回一個(gè)相應(yīng)的socket通道對(duì)象,但它們卻并非新通道的來源,RandomAccessFile.getChannel() 方法才是。只有在已經(jīng)有通道存在的時(shí)候,它們才返回與一個(gè) socket 關(guān)聯(lián)的通道;它們永遠(yuǎn)不會(huì)創(chuàng)建新通道。 Java nio入門教程詳解(十五)
0
0
我們認(rèn)為:用戶的主要目的,是為了獲取有用的信息,而不是來點(diǎn)擊廣告的。因此本站將竭力做好內(nèi)容,并將廣告和內(nèi)容進(jìn)行分離,確保所有廣告不會(huì)影響到用戶的正常閱讀體驗(yàn)。用戶僅憑個(gè)人意愿和興趣愛好點(diǎn)擊廣告。
我們堅(jiān)信:只有給用戶帶來價(jià)值,用戶才會(huì)給我們以回報(bào)。
|