Android 4.2.2を搭載したGalaxy s4とAndroid 4.0.3を搭載したGalaxy s2の2つの電話があります。情報を読むために torrent ファイルを開いています。私はこのコードを得ました:
metafile = new Metafile(new BufferedInputStream(new FileInputStream(DotTorrentPath)));
メタファイルはライブラリのクラスです。私の g4 では、トレント ファイルを解析するライブラリから内部エラーが発生します。java.io.IOException: Problem parsing bencoded file
. 私の g2 では、すべて正常に動作します。4.2 の FileInputStream または BufferedInputStream に関する変更についてインターネットを閲覧してきましたが、何も見つかりませんでした。
両方の電話で、DotTorrentPath は /mnt/sdcard/Download/thisisatorrent.torrent です。
ライブラリのコードは
private Object parse(InputStream is) throws IOException {
is.mark(0);
int readChar = is.read();
switch (readChar) {
case 'i':
return parseInteger(is);
case 'l':
return parseList(is);
case 'd':
return parseDictionary(is);
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
is.reset();
return parseByteString(is);
default:
throw new IOException("Problem parsing bencoded file");
}
}
g2 では、is.read()
100 が返されます。g4 では、31 が返されます。まったく同じファイルを使用しています。4.2で動作しない理由はありますか?
助けてくれてありがとう