我目前正在开发一个程序,该程序可读取文本文件并根据上一行的内容打印不同的行。例如,如果前一行是整数,那么我将打印当前行的其他变体。如何检查上一行是否为整数,而不一次通过文件两行?

这是到目前为止的代码。

 public void workThroughFile(String filename) {
    try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
        String line;
        while ((line = br.readLine()) != null) {
            if (isInteger(line) == false && line.contains("?") == true) {
                System.out.println(line);
            }
            if (isInteger(line) == false && line.contains("?") == false) {
                System.out.println(line);
            }
            if (isInteger(line) == true) {

            }

        }
    }
    catch (Exception e) {
        System.out.println("Did not quite work this time.");
    }
}

最佳答案

这里的策略是:

将上一行和当前行都保存在内存中。您可以在处理读取文件的类上声明2个属性。

private String prevLine;
private String currLine;


然后一一读取文件行:

...
String line;
while ((line = br.readLine()) != null) {
    //update line properties
    prevLine = currLine;
    currLine = line;
    if(someConditions(prevLine)){
        handleCurrLine(currLine);
    }
}

10-04 19:45