Я хочу извлечь данные, возвращенные сторонним веб-сервисом. Ответ анализируется XmlPullParser
. Блок данных - это декодированный Base64 TEXT
одного элемента. До сих пор мой анализатор содержит код:Разархивировать базовый ответ веб-службы на лету?
assert eventType == XmlPullParser.TEXT;
content = xpp.getText();
content
является упомянутым блоком данных. Он работает, но он может быть длиной более 100 кбайт. Мне нужно проанализировать содержимое, используя другой синтаксический анализатор, который:
Декодировать блок данных, закодированный через base64. Результатом является образ zip-файла с одним ZIP-файлом внутри.
Извлечь содержимое заархивированного файла - оно находится в формате CSV.
Проведите анализ строк CSV-файла и извлеките данные.
Если я знаю имя файла в zip-архиве, можно ли его обрабатывать «на лету» с помощью объектов Android/Java? (На лету - я имею в виду, не сохраняя его сначала в файле.) Или, как и где я могу создать временный файл, извлеченный из содержимого zip-файла?
У меня проблема с 'zipStream.getNextEntry()'. Из-за этого я добавил 'catch (IOException e) {System.out.println (e.getMessage()); } '. Он не может читать локальный заголовок версии 45. (По-видимому, некоторая ошибка между моим стулом и клавиатурой.) Я сохранил 'decodedContent' в Download/output.zip', а Total Commander для Android способен извлечь файл. В чем может быть проблема? – pepr
Я нашел ответ здесь http://stackoverflow.com/a/15566221/1346705. Вероятно, я в такой же ситуации. Спасибо за код. – pepr