Mega Code Archive

 
Categories / Java Tutorial / File
 

Convert byte array to string

/*    Copyright (C) 2002 MySQL AB      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 2 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, write to the Free Software      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA        */ import java.io.UnsupportedEncodingException; /**  * Various utility methods for converting to/from byte  * arrays in the platform encoding  *   * @author Mark Matthews  */ public class StringUtils {     //~ Instance/static variables .............................................     private static final int BYTE_RANGE = (1 + Byte.MAX_VALUE)                                           - Byte.MIN_VALUE;     private static byte[] allBytes = new byte[BYTE_RANGE];     private static char[] byteToChars = new char[BYTE_RANGE];     //~ Initializers ..........................................................     static {         for (int i = Byte.MIN_VALUE; i <= Byte.MAX_VALUE; i++) {             allBytes[i - Byte.MIN_VALUE] = (byte) i;         }         String allBytesString = new String(allBytes, 0,                                             Byte.MAX_VALUE - Byte.MIN_VALUE);         for (int i = 0; i < (Byte.MAX_VALUE - Byte.MIN_VALUE); i++) {             byteToChars[i] = allBytesString.charAt(i);         }     }     /**      * DOCUMENT ME!      *       * @param buffer DOCUMENT ME!      * @param startPos DOCUMENT ME!      * @param length DOCUMENT ME!      * @return DOCUMENT ME!       */     public static final String toAsciiString3(byte[] buffer, int startPos,                                                int length) {         char[] charArray = new char[length];         int readpoint = startPos;         for (int i = 0; i < length; i++) {             charArray[i] = byteToChars[(int) buffer[readpoint]                            - Byte.MIN_VALUE];             readpoint++;         }         return new String(charArray);     }     /**      * DOCUMENT ME!      *       * @param buffer DOCUMENT ME!      * @return DOCUMENT ME!       */     public static final String toAsciiString(byte[] buffer) {         return toAsciiString3(buffer, 0, buffer.length);     }     /**      * DOCUMENT ME!      *       * @param buffer DOCUMENT ME!      * @param startPos DOCUMENT ME!      * @param length DOCUMENT ME!      * @return DOCUMENT ME!       */     public static final String toAsciiString2(byte[] buffer, int startPos,                                                int length) {         return new String(buffer, startPos, length);     }     /**      * DOCUMENT ME!      *       * @param buffer DOCUMENT ME!      * @param startPos DOCUMENT ME!      * @param length DOCUMENT ME!      * @return DOCUMENT ME!       */     public static final String toAsciiString(byte[] buffer, int startPos,                                               int length) {         StringBuffer result = new StringBuffer();         int endPoint = startPos + length;         for (int i = startPos; i < endPoint; i++) {             result.append(byteToChars[(int) buffer[i] - Byte.MIN_VALUE]);         }         return result.toString();     } }