[英]How to scroll text output in Java?
假设我有一个30行高的终端。
并说我有一个循环,输出100行输出
for(int i=0; i<100; i++){
System.out.println(i);
}
有什么方法可以输出前30行,显示“按Enter继续输出...”的文本,当用户按Enter时显示接下来的30行等?
我想以最简单的方式做到这一点。 如果我可以less
使用方式,那将是很好的。
这需要在Java源代码中实现。 以下是不适合的解决方案:
java program | less'
另外,我将需要以编程方式获取在其中执行终端的高度。
用更少 :
java program | less
要么
for(int i=0; i<100; i++){
if( i % 30 == 0) {
System.out.println("Press enter to continue output...");
System.in.read();
}
System.out.println(i);
}
在Java中:
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
for(int i=0; i<100; i++){
if (i % 30 == 0) {
System.out.println("Press enter to continue output...");
r.readLine();
}
System.out.println(i);
}
将tput cols
作为命令行arg或系统属性(java -DTermHeight =`tput cols`)传递给Java程序,或者在运行时使用Runtime.getRuntime().exec("tput cols")
来获取它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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.