Slices a part of the specified ByteBuffer into a new byte buffer and returns it. - Java java.nio

Java examples for java.nio:ByteBuffer Int

Description

Slices a part of the specified ByteBuffer into a new byte buffer and returns it.

Demo Code

/*/*from  www .  ja v a 2 s  .c  o m*/
 * Copyright (C) 2013 Luca Longinotti
 * Copyright (C) 2014 Key Bridge LLC. All Rights Reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
//package com.java2s;
import java.nio.ByteBuffer;

public class Main {
    /**
     * Slices a part of the specified {@link ByteBuffer} into a new byte buffer
     * and returns it.
     *
     * @param buffer The byte buffer to slice data from.
     * @param offset The offset of the part to slice.
     * @param length The length of the part to slice.
     * @return The new byte buffer with the sliced part.
     */
    public static ByteBuffer slice(final ByteBuffer buffer,
            final int offset, final int length) {
        final int oldPosition = buffer.position();
        final int oldLimit = buffer.limit();

        buffer.position(offset);
        buffer.limit(offset + length);

        final ByteBuffer slice = buffer.slice();

        buffer.position(oldPosition);
        buffer.limit(oldLimit);

        return slice;
    }
}

Related Tutorials