Java的.如何从BuffereReader值中删除所有行以避免解析它们?

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)

如何跳过解析每行代码?在解析之前是否可以删除该字符串上方的所有内容?

Tim*_*m B 6

除非你知道它在页面上的位置(前面有多少个字符),否则没有真正的方法可以做到这一点.在不知道要跳转到的位置的情况下,您无法跳转到某个位置,找到该位置的唯一方法是扫描文件以查找您的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)