Я играю с Android и пытаюсь получить файл (PDF-книга). Для этого я написал Servelt, который кодирует книгу в строку base64 и помещает ее в документ XML. Этот документ содержит также имя, автора и поля IBSN. Я успешно получил это. В случае маленькой книги я могу даже расшифровать ее и открыть. Но если размер больше 2 МБ, я получаю OutOfMeoryError.
Мой код парсера:
public void characters(char[] ch, int start, int length)
throws SAXException {
if(builder==null) builder = new StringBuilder();
builder.append(new String(ch, start, length));
Затем я делаю следующее:
fos = new FileOutputStream(Environment.getExternalStorageDirectory().toString()+"/book.pdf", false);
byte[] toWrite = Base64.decode(builder.toString(), Base64.DEFAULT);
fos.write(toWrite);
fos.flush();
fos.close();
Кто-нибудь знает, как я могу разобрать это без ошибки? Я пытался разобрать это в
символьный метод (я имею в виду использование небольшого буфера), но он терпит неудачу ... Недопустимая строка base 64.