Module  java.base
软件包  java.nio.channels

Interface WritableByteChannel

    • 方法详细信息

      • write

        int write​(ByteBuffer src)
           throws IOException
        从给定的缓冲区向该通道写入一个字节序列。

        尝试写入r个字节到通道,其中r是缓冲区中剩余的字节数,即src.remaining() ,在此方法被调用的时刻。

        假设写入长度为n的字节序列,其中0 <= n <= r 该字节序列将从索引p开始从缓冲区传送,其中p是调用该方法时缓冲区的位置; 写入的最后一个字节的索引将为p + n - 1 缓冲区的返回位置将等于p + n ; 其限制将不会改变。

        除非另有规定,写入操作将仅在写入所有r个请求的字节后才会返回。 某些类型的通道取决于它们的状态,可能仅写入一些字节,或者可能只写入一些字节。 例如,在非阻塞模式下的套接字通道不能写入任何比套接字输出缓冲区中的任何字节更多的字节。

        可以随时调用此方法。 但是,如果另一个线程已经在该通道上启动了写入操作,那么此方法的调用将阻塞,直到第一个操作完成。

        参数
        src - 要检索字节的缓冲区
        结果
        写入的字节数,可能为零
        异常
        NonWritableChannelException - 如果这个频道没有开放写作
        ClosedChannelException - 如果此频道关闭
        AsynchronousCloseException - 如果另一个线程在写操作正在进行时关闭此通道
        ClosedByInterruptException - 如果另一个线程在写操作正在进行时中断当前线程,从而关闭通道并设置当前线程的中断状态
        IOException - 如果发生其他I / O错误