Я столкнулся со странной проблемой, используя API сжатия RIM, я не могу заставить его работать так, как описано в документации.
Если я заархивирую простой текстовый файл с помощью win gzip tool, добавьте gz к ресурсам проекта Blackberry и в приложении попробуйте распаковать его, будет бесконечный цикл, gzis.read() никогда не вернет -1...
try
{
InputStream inputStream = getClass().getResourceAsStream("test.gz");
GZIPInputStream gzis = new GZIPInputStream(inputStream);
StringBuffer sb = new StringBuffer();
char c;
while ((c = (char)gzis.read()) != -1)
{
sb.append(c);
}
String data = sb.toString();
add(new RichTextField(data));
gzis.close();
}
catch(IOException ioe)
{
}
После сжатого содержимого повторяется значение 65535 в gzis.read(). Единственный обходной путь, который я нашел, это глупо
while ((c = (char)gzis.read()) != -1 && c != 65535)
Но мне интересно, в чем причина, что я делаю не так и почему 65535< /а>?