java NIO —— 通道

一、通道基礎

通道是訪問I/O 服務的導管。I/O 可以分爲廣義的兩大類別:File I/O 和 Stream I/O。相應地有兩種類型的通道,它們是文件(file)通道和套接字(socket)通道。

有一個FileChannel類和三個 socket通道類:SocketChannel、ServerSocketChannel和  DatagramChannel。 

通道可以以多種方式創建。Socket通道有可以直接創建新socket通道的工廠方法。但是對FileChannel對象來說,卻只能通過在一個打開的RandomAccessFile、FileInputStream或  FileOutputStream對象上調用getChannel( )方法來獲取。您不能直接創建一個FileChannel對象。

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( ); 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章