RIM 圧縮 APIの使用中に奇妙な問題が発生しました。ドキュメントに記載されているように機能させることができません。win gzipツール
を使用してプレーンテキストファイルをgzipし、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)
{
}
圧縮されたコンテンツの後に、gzis.read() で 65535 値の繰り返しがあります。私が見つけた唯一の回避策は愚かです
while ((c = (char)gzis.read()) != -1 && c != 65535)
しかし、私はその理由、私が間違っていること、そしてなぜ65535なのか知りたいです。