Here you can find the source of ByteArrayToStringList(byte[] byteArray, int dataLength)
Parameter | Description |
---|---|
byteArray | byte array to convert |
dataLength | length of byte array |
public static List<String> ByteArrayToStringList(byte[] byteArray, int dataLength)
//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; } } }