Преобразование 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
Другие вопросы по тегам