Как преобразовать двоичную полезную нагрузку (файл) в байт [] в java? - PullRequest
3 голосов
/ 07 мая 2020

Я получаю json данные, содержащие подобные двоичные данные, и я хотел бы преобразовать эти данные в byte [] в java, но я не знаю, как?.

"payload": "7V1bcxs3ln6frfdcfvfbghfdX8HSw9Zu1QzzartyhblfdcvberCObjvJpkiJUpmhRI1pKXYeXHRsZLSrCy
5dElN5tfvQaO72TdSoiOS3TH8Yxdffgtg754679513qdfrgvlslsqdeqaepdccngrdzedrtghBD+d++e7v//p80/v96v7h+u72
+z1gfK/39x/+9t391cPTzeP88aE/++Fvvd53n+8+Xd1c/fBm/unqAf+7
N7v65en++vGP3vx2fvPHw/XDdwfpHf5mevhq/vQDcnAAwD+gEPwDF+bDxTv+3UF61d/4eesrfP356uFx"

Ответы [ 2 ]

4 голосов
/ 07 мая 2020

Основываясь на наблюдении, что «двоичная» строка состоит из букв ASCII, цифр и «+» и «/», я вполне уверен, что это на самом деле данные в кодировке Base64 данные.

Чтобы декодировать Base64 в byte[], вы можете сделать что-то вроде этого:

String s = "7V1bcxs3ln6...";
byte [] bytes = java.util.Base64.getDecoder().decode(s);

Вызов decode вызовет IllegalArgumentException, если входная строка неправильно закодирована в Base64.


Когда я декодировал эту конкретную строку с помощью онлайн-декодера Base64, результат был непонятным. Но этого следовало ожидать от двоичных данных.

3 голосов
/ 07 мая 2020

В общем, если у вас есть строка в каком-либо объекте, обозначающем полезную нагрузку json, вы можете:

String s = "7V1bcxs3ln6...";
byte [] bytes = s.getBytes();

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

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