The*_*ama 0 java bufferedreader
目前我已经得到了以下从网站上抓取数据的内容.
try {
in = ServiceUtils.connect(url);
} catch (Exception e1) {
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这很棒,然后我可以遍历每一行来找到我想要的东西.
while ((inputLine = in.readLine()) != null){
//Do a whole bunch of stuff
}
Run Code Online (Sandbox Code Playgroud)
但是,while循环意味着我将遍历页面的整个内容,当我已经知道我想在达到一个唯一的文本字符串之后查看内容,如下所示:
<caption>Latest Entries</caption>
Run Code Online (Sandbox Code Playgroud)
如何跳过解析每行代码?在解析之前是否可以删除该字符串上方的所有内容?
除非你知道它在页面上的位置(前面有多少个字符),否则没有真正的方法可以做到这一点.在不知道要跳转到的位置的情况下,您无法跳转到某个位置,找到该位置的唯一方法是扫描文件以查找您的String.
您可以做的是确保一次扫描一行文件,并且只有在找到与搜索字符串匹配的行后才开始任何其他处理.
任何库方法(即indexOf,match等)都必须通过扫描你在方法之外进行的方法来进行相同的循环.
我只做两个while循环,第一个消耗字符串直到找到匹配,第二个然后处理.
while ((inputLine = in.readLine()) != null &&
inputLine.indexOf("<caption>Latest Entries</caption>")!=-1){
// Do nothing
}
while ((inputLine = in.readLine()) != null) {
// Now do stuff
}
Run Code Online (Sandbox Code Playgroud)