Java: 每n秒从InputStreamReader计算连续打印的数字之和?

Java: Calculate sum of continuously printed numbers from InputStreamReader every n seconds?

我正在使用 InputStreamReader 从 shell 终端检索值,该终端在 运行.

期间不断产生输出

现在,我正在使用子字符串将结果打印到控制台:System.out.println(inputStr.substring(inputStr.lastIndexOf(" ")+1));,因为它将打印我需要的输出的最后一位数字。

输出 运行 连续输出,可能每秒打印 1 次,我如何编写 Java 代码来计算每 N 秒打印的所有数字的总和?(假设 20 秒是一个很好的衡量标准)?

目前的源代码如下:

import java.io.InputStreamReader;
import java.io.BufferedReader;

public class fooShell {

    public static void main(String[] args) {

        InputStreamReader isReader = new InputStreamReader(System.in);
        BufferedReader bufReader = new BufferedReader(isReader);
        while(true){
            try {
                String inputStr = bufReader.readLine();
                if(inputStr == null) {
                    break;
                }
                    System.out.println(inputStr.substring(inputStr.lastIndexOf(" ")+1));     
            }
            catch (Exception e) {
                System.err.println("Error "+e);
            }
        }
   }

}

将不断更新的总和存储为 class 变量,并在每次轮询 InputStreamReader 时更新它。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class FooShell
{
  int runningTotal;

  FooShell()
  {
    runningTotal = 0;
  }

  public static void main(String[] args)
  {

    FooShell fooShell = new FooShell();
    InputStreamReader isReader = new InputStreamReader(System.in);
    BufferedReader bufReader = new BufferedReader(isReader);
    while (true)
    {
      try
      {
        String inputStr = bufReader.readLine();
        if (inputStr == null)
        {
          break;
        }
        int currentNumber = Integer
            .parseInt(inputStr.substring(inputStr.lastIndexOf(" ") + 1));
        fooShell.runningTotal += currentNumber;
        System.out.println(currentNumber);
      }
      catch (Exception e)
      {
        System.err.println("Error " + e);
      }
    }
  }
}