Java Channel

Channel接口(java.nio.channels.Channel)定义了一个关联I/O操作的接口,它表示一个关联I/O操作的读写通道。所有关联I/O操作的I/O通道都实现了这个接口。

 

通道(Channel)表示一个实体(例如硬件设备、文件、网络套接字、或者一个具有执行一个或多个明确的I/O操作如读或写操作的编程组件,)的开放连接。怎么理解?比如USB设备的读写、文件读写、编程组件如Java标准IO输入输出流。

 

通道要么是打开的要么是关闭的,通道一旦创建就已经打开,并且一旦关闭就只能关闭的。一旦关闭,在通道上执行的io操作将抛出java.nio.channels.ClosedChannelException异常。可以调用isOpen方法判断通道是打开的还是关闭的。

 

 

 

java.nio.channels.Channel接口中只定义了2个方法: isOpen close同时,java.nio.channels.Channel接口扩展了java.io.Closeable接口,并对close赋予了新的功能定义。
 

 

 

 

isOpen

用于测试判断通道是打开的还是关闭的.

 

close

关闭通道。通道一旦关闭后,就不能再打开。并且通道关闭后就不能再在这个通道上尝试执行的io操作,否则的话,将抛出java.nio.channels.ClosedChannelException异常。如果通道已经被关闭,再调用close方法将不会有任何影响,也就是说,close方法可调用多次,除了第一次调用该方法关闭通道之外,其他的调用不会有任何影响。并且如果某个线程已经调用了该方法,但这个时候其他的调用将会阻塞直到第一个调用完成,然后才能返回并没有任何影响。

猜你喜欢

转载自lobin.iteye.com/blog/2326354