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);
}
}
}
}
我正在使用 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);
}
}
}
}