繁体   English   中英

如何滚动Java中的文本输出?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM