Java Convert via ByteBuffer toBuffer(boolean[] src, int offset)

Here you can find the source of toBuffer(boolean[] src, int offset)

Description

to Buffer

License

Apache License

Declaration

static ByteBuffer toBuffer(boolean[] src, int offset) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright 2011 See AUTHORS file.// ww w. j  a  v a2 s .  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.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;

public class Main {
    static private ByteBuffer buffer = ByteBuffer.allocateDirect(8 * 4)
            .order(ByteOrder.nativeOrder());
    static private IntBuffer bufferInt = buffer.asIntBuffer();
    static private FloatBuffer bufferFloat = buffer.asFloatBuffer();

    static ByteBuffer toBuffer(boolean[] src, int offset) {
        int n = src.length - offset;
        ensureSize(n);
        buffer.position(0);
        for (boolean value : src)
            buffer.put(value ? (byte) 1 : 0);
        return buffer;
    }

    static IntBuffer toBuffer(int[] src, int offset) {
        int n = src.length - offset;
        ensureSize(n * 4);
        bufferInt.position(0);
        bufferInt.put(src, offset, n);
        return bufferInt;
    }

    static FloatBuffer toBuffer(float[] src, int offset) {
        int n = src.length - offset;
        ensureSize(n * 4);
        bufferFloat.position(0);
        bufferFloat.put(src, offset, n);
        return bufferFloat;
    }

    static private void ensureSize(int n) {
        if (buffer.capacity() < n) {
            buffer = ByteBuffer.allocateDirect(n).order(
                    ByteOrder.nativeOrder());
            bufferInt = buffer.asIntBuffer();
            bufferFloat = buffer.asFloatBuffer();
        }
    }
}

Related

  1. toAttributeValue(Object value)
  2. toBigDecimal(byte[] bytes, int scale)
  3. toBigInteger(byte[] bytes)
  4. toBinaryFloatingPoint(double source)
  5. toBinaryString(byte[] b)
  6. toBuffer(byte[] arr)
  7. toBuffer(byte[] arr)
  8. toBuffer(int[] array)
  9. toBuffer(Serializable obj)