嗨,所以即时通讯使用api来搜索书籍。 http://openlibrary.org/search.json?q=prolog
然后我运行一个缓冲搜索(下面)来读取每一行并使用IF语句选择我想要的行
“title_suggest”:“Prolog”,
URL search = new URL("http://openlibrary.org/search.json?q="+searchingTerm);//search string
BufferedReader in = new BufferedReader(
new InputStreamReader(search.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) //read file
例如:如果inputLine包含title_suggest,则将inputLine添加到arrayList。
然而,这是非常缓慢的,我想知道是否有更有效的方式来读取数据?答案 0 :(得分:1)
我无法想象与通过互联网检索数据相比,解析是一个巨大的时间。但是,无论你做什么,最好还是使用真正的JSON解析器,而不是卷起你自己的解析器,特别是如果你依赖if语句这样做的话。
另外,请确保您发送给API的查询与您可以进行的限制一样,经过所有更准确的数据后,他们可以为所有相关方提供更好的信息。
答案 1 :(得分:1)
这很慢
BufferedReader
并非“非常缓慢”。它非常快。您可以使用BufferedReader.readLine()
每秒读取数百万行。
缓慢的部分是处理每一行的代码。或者服务器可能会慢速执行查询或传递数据。
你在这里咆哮着错误的树。