У меня есть двоичные данные в файле, которые я могу прочитать в байтовом массиве и обработать без проблем. Теперь мне нужно отправить части данных по сетевому соединению в виде элементов в XML-документе. Моя проблема заключается в том, что когда я преобразую данные из массива байтов в строку и обратно в массив байтов, данные становятся поврежденными. Я протестировал это на одной машине, чтобы изолировать проблему от преобразования String, поэтому теперь я знаю, что она не будет повреждена синтаксическим анализатором XML или сетевым транспортом.
Сейчас у меня есть
byte[] buffer = ...; // read from file
// a few lines that prove I can process the data successfully
String element = new String(buffer);
byte[] newBuffer = element.getBytes();
// a few lines that try to process newBuffer and fail because it is not the same data anymore
Кто-нибудь знает, как преобразовать двоичный файл в строку и обратно без потери данных?
Ответил: Спасибо, Сэм. Я чувствую себя идиотом. Я получил ответ вчера, потому что мой SAX-парсер жаловался. По какой-то причине, когда я столкнулся с этой, казалось бы, отдельной проблемой, мне не пришло в голову, что это был новый симптом той же проблемы.
РЕДАКТИРОВАТЬ: просто ради полноты, я использовал Base64 класс из Apache Commons Codec для решения этой проблемы.