Java ByteBuffer Write write(WritableByteChannel channel, ByteBuffer[] srcs)

Here you can find the source of write(WritableByteChannel channel, ByteBuffer[] srcs)

Description

write

License

Apache License

Declaration

public static long write(WritableByteChannel channel, ByteBuffer[] srcs) throws IOException 

Method Source Code

//package com.java2s;
/**/*  w w w .  j  a va2s  .  c  o  m*/
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.GatheringByteChannel;

import java.nio.channels.WritableByteChannel;

public class Main {
    public static long write(WritableByteChannel channel, ByteBuffer[] srcs) throws IOException {
        if (channel instanceof GatheringByteChannel) {
            GatheringByteChannel gbc = (GatheringByteChannel) channel;
            return gbc.write(srcs);
        }

        long count = 0;

        for (ByteBuffer buf : srcs) {
            // Skip to the next byte buffer with bytes remaining
            if (!buf.hasRemaining()) {
                continue;
            }

            count += channel.write(buf);

            // Bail if the current byte buffer couldn't be consumed
            if (buf.hasRemaining()) {
                break;
            }
        }

        return count;
    }
}

Related

  1. write(GatheringByteChannel out, ByteBuffer[] buffers, int offset, int length)
  2. write(MappedByteBuffer buffer, int pos, String asciString)
  3. write(SocketChannel channel, ByteBuffer b, PrimitiveIterator.OfInt iterator)
  4. write(SocketChannel p_channel, SSLEngine p_sslEngine, ByteBuffer p_outAppBuf, ByteBuffer p_outNetBuf)
  5. write(WritableByteChannel channel, ByteBuffer buffer, byte[] data)
  6. write(WritableByteChannel channel, ByteBuffer[] srcs, int offset, int length)
  7. write(WritableByteChannel out, ByteBuffer buffer)
  8. write(WritableByteChannel socketChannel, SSLEngine engine, ByteBuffer plainOut, ByteBuffer cypherOut)
  9. writeAll(ByteBuffer buf, WritableByteChannel channel)