У меня есть двоичные данные в файле, который я могу читать в массив байтов и обрабатывать без проблем. Теперь мне нужно отправить части данных по сетевому соединению в качестве элементов в документе XML. Моя проблема в том, что когда я конвертирую данные из массива байтов в String и обратно в массив байтов, данные становятся поврежденными. Я тестировал это на одной машине, чтобы изолировать проблему до преобразования 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
Кто-нибудь знает, как конвертировать двоичные файлы в String и обратно без потери данных?
Отвечено: Спасибо Сэму. Я чувствую себя идиотом. Я ответил на это вчера, потому что мой парсер SAX жаловался. По какой-то причине, когда я столкнулся с этой, казалось бы, отдельной проблемой, мне не показалось, что это был новый симптом той же проблемы.
EDIT: Только для полноты я использовал Base64 класс из Apache Commons Codec пакет для решения этой проблемы.