假设我有一个高度为30行的终端。

并说我有一个循环,输出100行输出

for(int i=0; i<100; i++){
  System.out.println(i);
}


有什么方法可以输出前30行,显示“按Enter继续输出...”的文本,当用户按Enter时显示接下来的30行等?

我想以最简单的方式做到这一点。如果我可以以某种方式使用less,那将是非常好的。



更新资料

这需要在Java源代码中实现。以下是不适合的解决方案:

java program | less'


另外,我将需要以编程方式获取在其中执行终端的高度。

最佳答案

tput cols作为命令行arg或系统属性(java -DTermHeight =`tput cols`)传递给Java程序,或者在运行时使用Runtime.getRuntime().exec("tput cols")提取它

将该值存储在变量height中。现在

   height = (height==0?30:height);
    for(int i=1; i<=100; i++) {
        if (i % height== 0) {
            System.out.println("Press enter to continue output...");
            System.in.read();
        }
        System.out.println(i);
    }

关于java - 如何滚动Java中的文本输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7750570/

10-11 22:46
查看更多