Here you can find the source of bytesToString(byte[] bytes)
public static String bytesToString(byte[] bytes)
//package com.java2s; /**/*from www .j a v a2s.c o m*/ * Copyright (c) 1997-2013, www.tinygroup.org (luo_guo@icloud.com). * * Licensed under the GPL, Version 3.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.gnu.org/licenses/gpl.html * * 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. */ public class Main { private static final char[] DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" .toCharArray(); private static final char[] DIGITS_NOCASE = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .toCharArray(); public static String bytesToString(byte[] bytes) { return bytesToString(bytes, false); } public static String bytesToString(byte[] bytes, boolean noCase) { char[] digits = noCase ? DIGITS_NOCASE : DIGITS; int digitsLength = digits.length; if (isEmptyArray(bytes)) { return String.valueOf(digits[0]); } StringBuilder strValue = new StringBuilder(); int value = 0; int limit = Integer.MAX_VALUE >>> 8; int i = 0; do { while (i < bytes.length && value < limit) { value = (value << 8) + (0xFF & bytes[i++]); } while (value >= digitsLength) { strValue.append(digits[value % digitsLength]); value = value / digitsLength; } } while (i < bytes.length); if (value != 0 || strValue.length() == 0) { strValue.append(digits[value]); } return strValue.toString(); } public static boolean isEmptyArray(Object array) { return arrayLength(array, 0, -1) == 0; } private static int arrayLength(Object array, int defaultIfNull, int defaultIfNotArray) { if (array == null) { return defaultIfNull; // null } else if (array instanceof Object[]) { return ((Object[]) array).length; } else if (array instanceof long[]) { return ((long[]) array).length; } else if (array instanceof int[]) { return ((int[]) array).length; } else if (array instanceof short[]) { return ((short[]) array).length; } else if (array instanceof byte[]) { return ((byte[]) array).length; } else if (array instanceof double[]) { return ((double[]) array).length; } else if (array instanceof float[]) { return ((float[]) array).length; } else if (array instanceof boolean[]) { return ((boolean[]) array).length; } else if (array instanceof char[]) { return ((char[]) array).length; } else { return defaultIfNotArray; // not an array } } }