Java ByteBuffer to UTF toUtf8String(ByteBuffer buffer)

Here you can find the source of toUtf8String(ByteBuffer buffer)

Description

to Utf String

License

Open Source License

Declaration

public static String toUtf8String(ByteBuffer buffer) 

Method Source Code

//package com.java2s;
/*// ww  w .j a va  2 s .c  o  m
 * JBoss, Home of Professional Open Source.
 * Copyright 2014 Red Hat, Inc., and individual contributors
 * as indicated by the @author tags.
 *
 * 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.charset.StandardCharsets;

public class Main {
    private static final String EMPTY = "";

    public static String toUtf8String(ByteBuffer buffer) {
        if (!buffer.hasRemaining()) {
            return EMPTY;
        }
        if (buffer.hasArray()) {
            return new String(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining(),
                    StandardCharsets.UTF_8);
        } else {
            byte[] content = new byte[buffer.remaining()];
            buffer.get(content);
            return new String(content, StandardCharsets.UTF_8);
        }
    }

    public static String toUtf8String(ByteBuffer... buffers) {
        int size = 0;
        for (ByteBuffer buf : buffers) {
            size += buf.remaining();
        }
        if (size == 0) {
            return EMPTY;
        }

        int index = 0;
        byte[] bytes = new byte[size];
        for (ByteBuffer buf : buffers) {
            if (buf.hasArray()) {
                int len = buf.remaining();
                System.arraycopy(buf.array(), buf.arrayOffset() + buf.position(), bytes, index, len);
                index += len;
            } else {
                int len = buf.remaining();
                buf.get(bytes, index, len);
                index += len;
            }
        }
        return new String(bytes, StandardCharsets.UTF_8);
    }
}

Related

  1. readUTF(ByteBuffer bb)
  2. readUTF8(ByteBuffer buf)
  3. readUTFString(MappedByteBuffer mmap)
  4. toUtf8CharBuffer(ByteBuffer buffer)
  5. toUTF8String(ByteBuffer buffer)
  6. toUtf8String(ByteBuffer byteBuffer)