Java Byte Array to String to Byte Array - PullRequest
       117

Java Byte Array to String to Byte Array

171 голосов
/ 13 июля 2011

Я пытаюсь понять преобразование байта [] в строку, строковое представление преобразования байта [] в байт [] ... Я преобразовываю свой байт [] в строку для отправки, затем я ожидаю, что мой веб-сервис (записанв Python) для передачи данных прямо обратно клиенту.

Когда я отправляю данные из моего приложения Java ...

Arrays.toString(data.toByteArray())

Байт для отправки ..

[B@405217f8

Send (Это результат Arrays.toString (), который должен быть строковым представлением моих байтовых данных, эти данные будут отправлены по сети):

[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]

На стороне Pythonсервер python возвращает строку вызывающей стороне (я вижу, что она совпадает со строкой, которую я отправил на сервер

[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]

Сервер должен вернуть эти данные клиенту, где их можно проверить.

Ответ, который получает мой клиент (в виде строки), выглядит так:

[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]

Кажется, я не могу понять, как вернуть полученную строку обратно в байт []

Что бы я ни старался, я получаю байтовый массив, который выглядит следующим образомlows ...

[91, 45, 52, 55, 44, 32, 49, 44, 32, 49, 54, 44, 32, 56, 52, 44, 32, 50, 44, 32, 49, 48, 49, 44, 32, 49, 49, 48, 44, 32, 56, 51, 44, 32, 49, 49, 49, 44, 32, 49, 48, 57, 44, 32, 49, 48, 49, 44, 32, 51, 50, 44, 32, 55, 56, 44, 32, 55, 48, 44, 32, 54, 55, 44, 32, 51, 50, 44, 32, 54, 56, 44, 32, 57, 55, 44, 32, 49, 49, 54, 44, 32, 57, 55, 93]

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

B@2a80d889

Оба они отличаются от моих отправленных данных ... Я уверенМне не хватает чего-то по-настоящему простого ....

Любая помощь?!

Ответы [ 11 ]

0 голосов
/ 03 августа 2016

Используйте приведенный ниже API кода для преобразования байтового кода в виде строки в байтовый массив.

 byte[] byteArray = DatatypeConverter.parseBase64Binary("JVBERi0xLjQKMyAwIG9iago8P...");
...