【发布时间】:2009-06-25 06:48:51
【问题描述】:
我在使用 RIM compression API 时遇到了一个奇怪的问题,我无法按照文档中的描述让它工作。
如果我使用win gzip tool gzip纯文本文件,将gz添加到黑莓项目的资源中,然后在应用程序中尝试解压它,会出现无限循环,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)
{
}
压缩后的内容在 gzis.read() 中有重复的 65535 值。我发现的唯一解决方法是愚蠢的
while ((c = (char)gzis.read()) != -1 && c != 65535)
但我很好奇是什么原因,我做错了什么,为什么65535?
【问题讨论】:
标签: blackberry compression gzip magic-numbers