public abstract void read( dst, long timeout, unit, A attachment, <,? super A> handler)
从通道中读取字节序列到指定的ByteBuffer
该方法启动异步读取操作,以从该通道读取到给定缓冲区的字节序列。 处理程序参数是在读操作完成(或失败)时调用的完成处理程序。 传递给完成处理程序的结果是读取的字节数,如果没有字节可以读取,则返回-1,因为通道已达到流出尾。
如果指定了一个超时,并且在操作完成之前超时,则操作将以异常InterruptedByTimeoutException完成。 在发生超时的情况下,实现不能保证字节未被读取,或者不会从通道读入给定的缓冲区,所以进一步尝试从通道中读取将导致抛出非特定的运行时异常。
否则,此方法的工作方式与AsynchronousByteChannel.read(ByteBuffer,Object,CompletionHandler)方法相同。
http://bugsee.cn/JDK8/java/nio/channels/AsynchronousSocketChannel.html#read-java.nio.ByteBuffer-long-java.util.concurrent.TimeUnit-A-java.nio.channels.CompletionHandler-