Преобразование Java из byte [] в char []
Я написал простой фрагмент, в котором я пытаюсь преобразовать (возможно) массив байтов в массив символов и наоборот. В сети много примеров, но для меня это самый простой способ сделать это. Мне нужно использовать массив, а не строки, потому что его содержимое - это поле пароля для управления.
Я спрашиваю вас, правильный ли этот фрагмент?
private static char[] fromByteToCharArrayConverter(byte[] byteArray){
ByteBuffer buffer = ByteBuffer.wrap(byteArray);
clearArray(byteArray);
CharBuffer charBuffer = Charset.forName("UTF-8").decode(buffer);
char[] charArray = new char[charBuffer.remaining()];
charBuffer.get(charArray);
return charArray;
}
private static byte[] fromCharToByteArray(char[] charArray){
CharBuffer charBuffer = CharBuffer.wrap(charArray);
ByteBuffer byteBuffer = Charset.forName("UTF-8").encode(charBuffer);
byte[] byteArray = new byte[byteBuffer.remaining()];
byteBuffer.get(byteArray);
return byteArray;
}
Спасибо
1 ответ
Решение
Нет, это не сработает (по крайней мере) по следующей причине:
ByteBuffer buffer = ByteBuffer.wrap(byteArray); // Wrap the array
clearArray(byteArray); // Clear the array -> ByteBuffer cleared too