假设我有一个高度为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/