我有两部手机,一部带有 android 4.2.2 的 Galaxy s4 和一部带有 android 4.0.3 的 Galaxy s2。我正在打开一个 torrent 文件以阅读信息。我得到了这个代码:
metafile = new Metafile(new BufferedInputStream(new FileInputStream(DotTorrentPath)));
元文件是库中的一个类。在我的 g4 上,我从解析 torrent 文件的库中收到一个内部错误。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 上运行?
谢谢您的帮助