Here you can find the source of readIso639(ByteBuffer bb)
public static String readIso639(ByteBuffer bb)
//package com.java2s; /*//from ww w . ja v a2 s . c o m * Copyright 2012 Sebastian Annies, Hamburg * * 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; public class Main { public static String readIso639(ByteBuffer bb) { int bits = readUInt16(bb); StringBuilder result = new StringBuilder(); for (int i = 0; i < 3; i++) { int c = (bits >> (2 - i) * 5) & 0x1f; result.append((char) (c + 0x60)); } return result.toString(); } public static int readUInt16(ByteBuffer bb) { int result = 0; result += byte2int(bb.get()) << 8; result += byte2int(bb.get()); return result; } public static int byte2int(byte b) { return b < 0 ? b + 256 : b; } }