我有一些带有公告网址列表的torrent文件,f.e。这是它的一部分:
announce-listll68:http://iptorrents.com:2790/b6d18a815ab4421a86de672d6833369d/announceel67:http://iptorrents.me:2710/b6d18a815ab4421a86de672d6833369d/announceel67:http://iptorrents.ru:6969/b6d18a815ab4421a86de672d6833369d/announceee
所以这里有一个带有键«announce-list»的数组,其中包含三个元素(bencoded data,http://en.wikipedia.org/wiki/Bencode)。 所以我使用Aeltis的BDecoder.java类来解码它。在解析时,我得到了Map的下一个值:
{created by=[B@141d683, announce=[B@16a55fa, encoding=[B@32c41a, announce-list=[[[B@e89b94], [[B@13e205f], [[B@1bf73fa]], comment=[B@5740bb, creation date=1310060702, info={pieces=[B@5ac072, name=[B@109a4c, length=34209795, piece length=65536, private=1}}
所以宣布列表中有一些哈希值。那么如何将其转换为普通字符串(例如«http://iptorrents.com:2790/b6d18a815ab4421a86de672d6833369d/announce»)?或者它是BDecoder.java中的一些算法问题?
这是解码数据的上层类方法:http://pastebin.com/HimqF0ye
答案 0 :(得分:1)
在您的案例中返回的对象是通用Map,没有定义类型。所以我想当你尝试打印这些值时,只打印地址。尝试将Map的值转换为String,这应该可以解决问题。
致以最诚挚的问候,
巴普蒂斯特