| 接口 | 描述 |
|---|---|
| AsynchronousByteChannel |
一个可以读写字节的异步信道。
|
| AsynchronousChannel |
支持异步I / O操作的通道。
|
| ByteChannel |
一个可以读写字节的通道。
|
| Channel |
一个I / O操作的关系。
|
| CompletionHandler<V,A> |
用于消耗异步I / O操作的结果的处理程序。
|
| GatheringByteChannel |
一个可以从一个缓冲区的序列写字节的通道。
|
| InterruptibleChannel |
可以异步关闭和中断的信道。
|
| MulticastChannel |
支持因特网协议(IP)多播的网络信道。
|
| NetworkChannel |
一个网络套接字的通道。
|
| ReadableByteChannel |
一个可以读取字节的通道。
|
| ScatteringByteChannel |
可以将字节读取到一个缓冲区序列的一个通道。
|
| SeekableByteChannel |
一个字节通道保持当前位置,允许位置被改变。
|
| WritableByteChannel |
一个可以写字节的通道。
|
| 类 | 描述 |
|---|---|
| AsynchronousChannelGroup |
以资源共享为目的的异步信道分组。
|
| AsynchronousFileChannel |
用于读取、写入和操作文件的异步通道。
|
| AsynchronousServerSocketChannel |
面向流的监听套接字的异步信道。
|
| AsynchronousSocketChannel |
面向流的连接套接字的异步通道。
|
| Channels |
用于信道和流的实用方法。
|
| DatagramChannel |
对于面向数据报套接字可选择频道。
|
| FileChannel |
用于读、写、映射和操作文件的通道。
|
| FileChannel.MapMode |
一个文件映射模式类型安全枚举。
|
| FileLock |
表示文件区域上的锁的令牌。
|
| MembershipKey |
表示因特网协议(IP)多播组的成员资格的令牌。
|
| Pipe |
实现一个单向管道的一对通道。
|
| Pipe.SinkChannel |
一个通道代表一
Pipe可写结尾。
|
| Pipe.SourceChannel |
一个通道代表一
Pipe可读的结束。
|
| SelectableChannel |
一个通道,可以通过
Selector复用。
|
| SelectionKey |
一个令牌代表一个
Selector
SelectableChannel登记。
|
| Selector |
多路复用器的
SelectableChannel对象。
|
| ServerSocketChannel |
一种面向流的监听套接字的可选通道。
|
| SocketChannel |
面向流的连接套接字的可选通道。
|
| 异常 | 描述 |
|---|---|
| AcceptPendingException |
当在信道上发起一个接受操作并接受以前的接受操作时,未经检查的异常引发。
|
| AlreadyBoundException |
试图将套接字绑定到已绑定的面向网络的信道时,未经检查的异常引发抛出。
|
| AlreadyConnectedException |
未检查异常抛出时,尝试连接
SocketChannel已连。
|
| AsynchronousCloseException |
当另一个线程关闭通道或通道的一部分,当它被阻塞在一个I / O操作中时,检查了一个线程接收的异常。
|
| CancelledKeyException |
当试图使用已不再有效的选择密钥时引发的异常抛出异常。
|
| ClosedByInterruptException |
当另一个线程在一个通道上被阻塞时,另一个线程在一个I / O操作中被阻塞时,检查了一个线程的异常。
|
| ClosedChannelException |
当试图在被关闭的通道上调用或完成一个I / O操作时调用或完成一个I / O操作时,检查异常。
|
| ClosedSelectorException |
当试图在一个封闭的选择器上调用一个I / O操作时,未检查异常引发。
|
| ConnectionPendingException |
未检查异常抛出时,尝试连接
SocketChannel为非阻塞连接操作已在进行中。
|
| FileLockInterruptionException |
当另一个线程在等待获取文件锁时,另一个线程在等待时,检查了一个线程接收的异常。
|
| IllegalBlockingModeException |
当在不正确的阻塞模式下的信道上调用阻塞模式特定的操作时,未检查异常引发。
|
| IllegalChannelGroupException |
当试图在未由同一个提供程序创建的组中打开一个通道时,未经检查的异常引发。
|
| IllegalSelectorException |
当试图注册一个不由创建了该通道的提供者创建的选择器的通道时,未检查异常引发的异常。
|
| InterruptedByTimeoutException |
检查异常被线程超时结束异步操作完成之前。
|
| NoConnectionPendingException | |
| NonReadableChannelException |
试图从未打开的读通道中读取时,未检查异常引发的异常。
|
| NonWritableChannelException |
试图写入未打开用于写入的信道时,未检查异常引发的异常。
|
| NotYetBoundException |
当试图在一个尚未绑定的服务器套接字通道上调用I / O操作时,未检查异常引发的异常。
|
| NotYetConnectedException |
当试图在未连接的套接字通道上调用I / O操作时,未检查异常引发的异常。
|
| OverlappingFileLockException |
未检查异常抛出时,试图获得一个文件重叠区域由同一个java虚拟机已经锁定区域的锁,或在另一个线程已等待锁的同一文件的重叠区域。
|
| ReadPendingException |
当试图从异步套接字通道读取并读取未完成的读取时,未检查异常抛出。
|
| ShutdownChannelGroupException |
当一个尝试在一组中构造一个信道,该信道被关闭或无法调用一个I / O操作的完成处理程序时,未经检查的异常将被调用,因为该信道组已终止。
|
| UnresolvedAddressException |
当试图在未解决的套接字地址上调用网络操作时,未检查异常引发。
|
| UnsupportedAddressTypeException |
当试图绑定或连接不支持的类型的套接字地址时,未检查异常引发的异常。
|
| WritePendingException |
试图写入异步套接字通道时,未检查异常引发的异常,以及未完成的前写。
|
Channels 描述 ChannelA nexus for I/O operations ReadableByteChannelCan read into a buffer ScatteringByteChannelCan read into a sequence of buffers WritableByteChannelCan write from a buffer GatheringByteChannelCan write from a sequence of buffers ByteChannelCan read/write to/from a buffer SeekableByteChannelA ByteChannelconnected to an entity that contains a variable-length sequence of bytesAsynchronousChannelSupports asynchronous I/O operations. AsynchronousByteChannelCan read and write bytes asynchronously NetworkChannelA channel to a network socket MulticastChannelCan join Internet Protocol (IP) multicast groups ChannelsUtility methods for channel/stream interoperation
一个通道代表等硬件设备,实体打开的连接文件,网络套接字,或者一个程序组件能够执行一个或多个不同的I/O操作,例如阅读或写作。在Channel指定界面,通道被打开或关闭,他们都异步闭合和可中断。
的Channel接口是由几个其他接口扩展。
的ReadableByteChannel接口指定一个read方法读取到缓冲区中的字节通道;同样,在WritableByteChannel接口指定一个write方法写入的字节从缓冲区的通道。的ByteChannel接口相结合这两种接口,可以读取和写入的字节通道的常见案例。SeekableByteChannel接口的扩展方法query和modify信道的当前位置的ByteChannel接口,其size。
的ScatteringByteChannel和GatheringByteChannel接口扩展ReadableByteChannel和WritableByteChannel接口,分别加入read和write方法,采取一个序列的缓冲区而不是一个单一的缓冲。
NetworkChannel接口指定的方法bind通道的插座,获得该套接字绑定的地址,和方法get和set套接字选项。MulticastChannel接口指定的方法加入到互联网协议(IP)的组播组。
的Channels实用类定义的静态方法,支持的java.io包流类的互操作与本频道包装类。一个合适的通道可以由一个InputStream或OutputStream,反过来InputStream或OutputStream可以构造一个通道。一个Reader可以构造使用给定的字符集解码从一个给定的可读字节通道字节,相反,Writer可以构造使用给定的字符集的字符编码为字节写一个给定的可写字节通道。
File channels 描述 FileChannelReads, writes, maps, and manipulates files FileLockA lock on a (region of a) file MappedByteBufferA direct byte buffer mapped to a region of a file
的FileChannel类支持读取字节从平时的作业,写字节,一个通道连接到一个文件,以及那些查询和修改当前文件位置和截断文件到一个特定的大小。它定义了方法获取整个文件或文件的一个特定区域锁;这些方法返回的FileLock类的实例。最后,它定义了将更新的文件强制写入包含它的存储设备的方法,用于有效地在文件和其他信道之间传输字节,并将文件的区域映射到内存中。
一个FileChannel是通过调用一个静态方法,它open创建,或通过调用一个FileInputStream,FileOutputStream的getChannel方法,或RandomAccessFile返回一个连接到同一个文件的java.io类文件通道。
Multiplexed, non-blocking I/O 描述
SelectableChannelA channel that can be multiplexed DatagramChannelA channel to a datagram-oriented socket Pipe.SinkChannelThe write end of a pipe Pipe.SourceChannelThe read end of a pipe ServerSocketChannelA channel to a stream-oriented listening socket SocketChannelA channel for a stream-oriented connecting socket SelectorA multiplexor of selectable channels SelectionKeyA token representing the registration
of a channel with a selectorPipeTwo channels that form a unidirectional pipe
复用,非阻塞I/O,这比更为可扩展的多线程、I/O阻塞,是由选择器,选择通道提供,并选择键。
一个selector是复用器selectable channels,这又是一种特殊类型的通道,可以投入non-blocking mode。执行多路复用I/O操作,一个或一个以上是第一次创建可选的渠道,为非阻塞模式,和一个选择器registered。注册一个通道指定的I/O操作,将测试由选择的准备,并返回一个selection key代表注册。
一旦一些渠道已经具有选择注册,一selection operation可以发现哪些渠道,如果有的话,已经准备执行一个或一个以上的操作,感兴趣的是先前宣布的。如果一个通道准备那么关键回来时它被注册将被添加到选择器的选择键集。键集,和它内的键,可以检查,以确定每个通道准备的操作。从每个键可以检索相应的信道,以执行任何I / O操作是必需的。
一个选择键表示它的通道已经准备好了一些操作是一个提示,但不是一个保证,这样的操作可以由一个线程执行,而不会导致线程块。重要的是,代码执行复用的I / O被写入,以忽略这些提示时,他们被证明是不正确的。
此包定义了可选的通道类对应的DatagramSocket,ServerSocket,和Socket类中定义的java.net包。为支持与信道相关联的套接字,已对这些类进行了小的更改。这个软件包还定义了一个实现单向管道的简单类。在所有的情况下,一个新的可选择的渠道是通过调用相应的类的静态方法创建的open。如果一个通道需要一个相关的套接字,那么这个操作的一个副作用将被创建一个套接字。
选择器,实现可选择的渠道和选择键可以被“堵”在java.nio.channels.spi包中定义的SelectorProvider类的另一种定义或实例。据预计,很多开发商会利用这个设备;它主要是提供这样复杂的用户可以利用特定的操作系统的I / o-multiplexing机制时,很高的性能要求。
多的要求实施的multiplexed-i I/O抽象记账和同步的AbstractInterruptibleChannel,AbstractSelectableChannel,AbstractSelectionKey执行,并在java.nio.channels.spi包AbstractSelector类。定义一个自定义的选择供应商时,只有AbstractSelector和AbstractSelectionKey类应该直接继承;自定义信道类应该扩展在这个包中定义适当的SelectableChannel子类。
Asynchronous I/O 描述 AsynchronousFileChannelAn asynchronous channel for reading, writing, and manipulating a file AsynchronousSocketChannelAn asynchronous channel to a stream-oriented connecting socket AsynchronousServerSocketChannelAn asynchronous channel to a stream-oriented listening socket CompletionHandlerA handler for consuming the result of an asynchronous operation AsynchronousChannelGroupA grouping of asynchronous channels for the purpose of resource sharing
Asynchronous channels是一种特殊类型的异步I/O操作通道。异步通道无阻塞的定义方法来启动异步操作,返回一个Future代表等待结果中的每一个操作。的Future可用于调查或等待操作的结果。异步I/O操作,也可以指定要调用的操作完成时,一个CompletionHandler。一个完成处理程序是用户提供的代码,该代码执行到消耗I / O操作的结果。
此包定义了连接到一个面向流的连接或监听套接字异步通道类,或面向数据报套接字。它还定义了AsynchronousFileChannel类异步阅读,写作,和操作文件。为支持操作截断文件到一个特定大小的FileChannel,力更新的文件被写入到存储设备,或获取锁在整个文件或文件的特定区域。不像它没有定义的映射文件的区域直接进入内存的方法FileChannel。内存映射I/O是必需的,那么可以用一FileChannel。
异步信道绑定到异步信道组以进行资源共享的目的。一组相关的ExecutorService,任务提交到处理I/O事件调度完成处理器消耗的异步操作在集团的渠道执行的结果。当创建通道或通道可以绑定到一个默认组时,该组可以选择指定。复杂的用户可能希望创建自己的异步信道组或配置ExecutorService将使用默认组。
与选择器,异步信道的实现可以被“堵”在java.nio.channels.spi包中定义的AsynchronousChannelProvider类的另一种定义或实例。这是没有预期,许多开发人员将实际利用这种设施,它主要是提供先进的用户可以利用操作系统特定的异步I / O机制时,非常高的性能是必需的。
除非另有说明,通过null实参构造函数或方法的任何类或接口在这个包会导致NullPointerException被。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.