Android Byte Array to String Convert ByteArrayToStringList(byte[] byteArray, int dataLength)

Here you can find the source of ByteArrayToStringList(byte[] byteArray, int dataLength)

Description

Converts a byte array into a String array

License

Open Source License

Parameter

Parameter Description
byteArray byte array to convert
dataLength length of byte array

Return

String array copy of passed byte array

Declaration

public static List<String> ByteArrayToStringList(byte[] byteArray,
        int dataLength) 

Method Source Code

//package com.java2s;
/**   Copyright (C) 2013  Louis Teboul (a.k.a Androguide)
 *
 *    admin@pimpmyrom.org  || louisteboul@gmail.com
 *    http://pimpmyrom.org || http://androguide.fr
 *    71 quai Cl?menceau, 69300 Caluire-et-Cuire, FRANCE.
 *
 *     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.,
 *      51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 **///from   w  ww  .j a va2s .  c o  m

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;

import java.util.List;

public class Main {
    /**
     * Converts a byte array into a String array
     *
     * @param byteArray  byte array to convert
     * @param dataLength length of byte array
     * @return String array copy of passed byte array
     */
    public static List<String> ByteArrayToStringList(byte[] byteArray,
            int dataLength) {
        if (byteArray == null) {
            return null;
        }
        if (dataLength <= 0) {
            return null;
        }
        if (dataLength > byteArray.length) {
            return null;
        }

        // Replace all invisible chars to '.'
        for (int i = 0; i < dataLength; i++) {
            if ((byteArray[i] == 0x0D) || (byteArray[i] == 0x0A)) {
                byteArray[i] = 0;
                continue;
            }
            if (byteArray[i] < 0x20) {
                byteArray[i] = 0x2E;
            }
            if (byteArray[i] > 0x7E) {
                byteArray[i] = 0x2E;
            }
        }

        // Split and convert to string
        List<String> result = new ArrayList<>();
        for (int i = 0; i < dataLength; i++) {
            if (byteArray[i] == 0) {
                continue;
            }
            int blockLength = -1;
            for (int j = i + 1; j < dataLength; j++) {
                if (byteArray[j] == 0) {
                    blockLength = j - i;
                    break;
                }
            }
            if (blockLength == -1) {
                blockLength = dataLength - i;
            }
            byte[] mBlockData = new byte[blockLength];
            System.arraycopy(byteArray, i, mBlockData, 0, blockLength);
            result.add(ByteToString(mBlockData));
            i += blockLength;
        }

        if (result.size() <= 0) {
            return null;
        }
        return result;
    }

    public static String ByteToString(byte[] byteArray) {
        if (byteArray == null) {
            return null;
        }
        try {
            String result = new String(byteArray, "ASCII");
            result = String.copyValueOf(result.toCharArray(), 0,
                    byteArray.length);
            return result;
        } catch (UnsupportedEncodingException e) {
            return null;
        }
    }
}

Related

  1. byteTOString(byte[] in)
  2. byteTOString(byte[] in, String encoding)
  3. byteToString(byte[] in)
  4. byteToString(int[] byteData)
  5. base16(byte[] data)
  6. toStringForm(byte[] arr)
  7. toStringUntil(byte[] b, int pos, byte until)
  8. toStringWithLength(byte[] b, int pos, int length)
  9. printBytes(byte[] bytes, StringBuilder builder, int bytesPerLine)