BufferedReader 没有正确迭代

BufferedReader not iterating properly

我 运行 遇到了一个我以前在 Java 中从未见过的奇怪错误。我有一个 BufferedReader,我用它来读取 .txt 文件。我正在尝试从我的文本文件中的几行中获取一些文本

@TextType()
@FindBy(xpath = "//label[normalize-space(text())=\"Premium Vehicle Monthly Rate 1\"]/../following-sibling::td[1]//input")
public WebElement PremiumVehicleMonthlyRate1;

我要抢高级车辆月费1

相关代码如下:

public static void main(String[] args) {
    //string to hold the product name
    String productName = "";
    //File object to hold the java source .txt file
    File file = new File(args[0]);
    int count = 0;

    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        while ((line = br.readLine()) != null) {
            if(line.contains("TextType")) {
                line = br.readLine();
                String subline = line.substring(line.indexOf("\"")+1);
                subline = subline.substring(subline.indexOf("\"")+1);
                subline = subline.substring(0, subline.indexOf("\"")-1); //COMMENT THIS LINE
                System.out.println(subline);
                count++;
            }
        }
        br.close();
        writer.close();
    }catch (Exception e) {

    }
    System.out.println("Count: " + count);
}

这样做,代码有效,但仅适用于我列表中的前 21 个元素。

如果我在代码中注释注释行,那么它适用于我的文本文件中的所有(总共 105 个 "TextType")元素,但显然不是我要查找的子字符串。

这是怎么回事!?

您的数据可能不是您期望的那样。我怀疑抛出异常,您捕获然后忽略。在您的 catch 块中添加 e.printStackTrace() 然后您将看到错误。