Как преобразовать массив байтов в строку, чтобы увидеть его напечатанным на консоли? - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь преобразовать байтовый массив в строку, чтобы можно было увидеть этот вектор / массив и проанализировать, как организованы эти байты.

Для этого я использую приведенный ниже код:

byte[] bytes = bos.toByteArray();

    String msgDecode = new String(bytes); // trying to convert byte in String
    System.out.println("Vetor de bytes [" + msgDecode + "]"); // Showing it

Но это не работает. Почему приведенный выше код не работает?

Стоит отметить, что массив байтов создается в соответствии с этим другим кодом:

String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+UUID.randomUUID().toString()+"audio_record.3gp";

public byte[] convert(String path) throws IOException {

    FileInputStream fis = new FileInputStream(path);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] b = new byte[1024];

    for (int readNum; (readNum = fis.read(b)) != -1; ) {
        bos.write(b, 0, readNum);
    }

    byte[] bytes = bos.toByteArray();

    return bytes;

}

Общая идея заключается в записи звука с смартфон и преобразовать этот аудиофайл в массив байтов. Этот String path - это путь, по которому аудио сохраняется после записи. Затем я использую этот путь (который представляет аудиофайл) и преобразую его в байтовый массив в соответствии с приведенным выше кодом.

Более подробную информацию вы можете найти и помочь мне здесь: Как решить эту ошибку: Android Не удалось связать ресурс?

Ответы [ 3 ]

2 голосов
/ 15 января 2020

если вы хотите увидеть значение байтов, вы можете использовать его следующим образом:

Log.d ("TAG", Arrays.toString (bytes));

0 голосов
/ 18 января 2020
        byte[] bytes = "ABCDEFG".getBytes();
        System.out.println(new String(bytes));      // ABCDEFG
        System.out.println(Arrays.toString(bytes)); // [65, 66, 67, 68, 69, 70, 71]
0 голосов
/ 16 января 2020

Что я постараюсь сделать, основываясь на том, что вы, ребята, сказали:

String decode = Arrays.toString(bytes);
Log.d("mytag", decode);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...