У меня есть файл, который записывается в байтах, как этотПреобразовать байт в шестнадцатеричном до фактического байта
\r\x00\x00\x00\xd0{"a": "test"}
, который имеет следующие байты
[13, 0, 0, 0, -48, 123, 34, 97, 34, 58, 32, 34, 116, 101, 115, 116, 34, 125]
, когда этот файл считывается в Java Я получать все убежали
\\r\\x00\\x00\\x00\\xd0{"a": "test"}
, когда я делаю .getBytes()
на этой строке я получаю
[92, 114, 92, 120, 48, 48, 92, 120, 48, 48, 92, 120, 48, 48, 92, 120, 100, 48, 123, 34, 97, 34, 58, 32, 34, 116, 101, 115, 116, 34, 125]
Мне нужно преобразовать строку в действительные байты, у меня нет возможности изменить способ чтения файла. Я знаю в Python, вы открываете файл с режимом 'rb'
, и вам хорошо идти. Если у java есть эта способность, я не могу ее использовать.
Итак, как можно преобразовать строку Java, читаемую в исходный массив байтов, который был записан в файл?
Извините, если этот вопрос глупый, но я настолько зеленый, когда речь идет о Java.
EDIT: Поэтому я считаю, что мой вопрос отличается от предложенной ссылки «дублированный вопрос». Он не принимает каждое буквальное значение в строке java и преобразует его обратно в байт. Считыватель читает строку в java. \x00
теперь \\x00
, который не совпадает с байтом. Так что, наверное, мне нужен способ отмены строки?
файл, если смотреть в шестнадцатеричном редакторе
0000000: 5c72 5c78 3030 5c78 3030 5c78 3030 5c78 \r\x00\x00\x00\x
0000010: 6430 7b22 6122 3a20 2274 6573 7422 7d0a d0{"a": "test"}.
Строка, ява получает просмотрены в шестнадцатеричном редакторе
0000000: 5c5c 725c 5c78 3030 5c5c 7830 305c 5c78 \\r\\x00\\x00\\x
0000010: 3030 5c5c 7864 307b 2261 223a 2022 7465 00\\xd0{"a": "te
0000020: 7374 227d 0a st"}.
Ну разъяснены и отформатированные вопросы никогда не глуп, по крайней мере для меня. – Maroun
Как вы его читаете? – toadzky
Результаты, полученные у getBytes(), это то, что вы ожидаете? – Shar1er80