Правильно завершающий поток для SaxParser, избегая исключения «неожиданный конец файла» - PullRequest
0 голосов
/ 20 апреля 2011

У меня та же проблема, что и указанная здесь на Android.

Было дано решение использовать URI, а не входной поток.

Я считаю, что вы можете использовать inputStream, как указывает API, но, очевидно, что-то не так с потоком, который вызывает исключения с помощью метода parse.Я могу подтвердить, что все данные поступают в поток, и SAXParseException указывает, что все данные идут в метод разбора, поскольку я могу использовать метод getColumnNumber, который возвращает -1 (указывая, что весь поток был прочитан).Но похоже, что метод синтаксического анализа не признает это как конец потока, таким образом поднимая «Неожиданный конец файла» (?)

Может кто-нибудь посоветовать, как использовать входной поток вместо URI каквход в метод разбора?

1 Ответ

1 голос
/ 24 апреля 2011

У меня была эта проблема, но причина была в том, что я принимал входной поток в неправильном формате кодирования. Убедитесь, что вы сначала поместили его в правильную кодировку (возможно, прочитав его как byte [] и используя конструктор String (byte [], String)), а затем попытайтесь поместить его через анализатор SAX.

А если вы хотите проанализировать XML в Android, возможно, вам лучше использовать Простую библиотеку в Android .

...