Я анализировал XML с изображением в кодировке Base64. Я хотел бы извлечь изображение и разобрать оставшуюся часть XML. Код, который я написал для извлечения изображения, выглядит следующим образом:
private void saveFormImage(String imageText) throws IOException {
FileOutputStream fos = null;
try {
Base64 base64=new Base64();
byte decoded[]=base64.decode(imageText.getBytes());
File file = new File(<file loc>);
fos = new FileOutputStream(file);
fos.write(decoded);
} finally {
IOUtils.closeQuietly(fos);
}
}
Я использую JDOM для синтаксического анализа XML и получения imageText вначале в виде строки и передаю строку этому методу. Затем я использую библиотеку кодеков Apache для декодирования закодированных данных Base64 и сохранения в файл.
Это лучший способ сделать это? Это не очень быстро. Это заканчивается примерно в 2 с. Есть ли более быстрый и эффективный способ памяти?
Как обновлено в комментарии ниже - Есть ли способ передать данные из XML напрямую в OutputStream и просто декодировать буфер в памяти? Это более эффективный способ памяти? Или это должно иметь значение, когда размер XML будет максимум 2,5 МБ.