Я пишу простую программу, которая извлекает данные XML из объекта и анализирует их динамически на основе пользовательских критериев.У меня проблемы с получением данных XML из объекта из-за формата, в котором он доступен.
Объект, содержащий XML, возвращает данные в виде байтового массива zipFile, например, так.
MyObject data = getData();
byte[] byteArray = data.getPayload();
// Вышеприведенный код возвращает byteArray zipFile
Способ, которым я проверял это, - записать byteArray в строку
String str = new String(byteArray);
// Вышеприведенный код возвращает строкусо странными символами.
Затем я записал данные в файл.
FileOutputStream fos = new FileOutputStream("new.txt");
fos.write(byteArray);
Я переименовал new.txt в new.zip.Когда я открыл его с помощью WinRAR, выскочил XML.
Моя проблема в том, что я не знаю, как выполнить это преобразование в Java с использованием потоков, без предварительной записи данных в zip-файл, а затемчитая это.Запись данных на диск сделает программное обеспечение слишком медленным.Любые идеи / фрагменты кода / информация, которую вы могли бы дать мне, будут очень признательны!Спасибо. Кроме того, если вам понадобится более подробное объяснение от меня, я с удовольствием уточню.
В качестве другого варианта мне интересно, будет ли XMLReader работать с ZipInputStream в качестве InputSource.
ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
ZipInputStream zis = new ZipInputStream(bis);
InputSource inputSource = new InputSource(zis);