Unix不像Java中的终端滚动



默认情况下,如果输出了大量文本,终端会向下滚动到最后一行,然后用户必须一直向上滚动才能从顶部读取。我想要一种类似Java的方式来实现Unix"less"程序中提供的滚动。我想要一种输出大量文本的方式,用户可以从顶部开始,并按照自己的速度向下滚动。

这不是一个Less实现,但这里有一个想法:

  • 将输出分成几个部分:超长字符串=>短字符串数组(约10-15行)
  • 进行循环,等待用户输入以显示下一次迭代
String s = "blahhh foo.... I'm a very long string, with long lines and
a lot of linebreaks...";
String[] looping = s.split("n"); // whatever delimiter you need
for(int i = 0 ; i < looping.length ; i++) {
  // print 
  System.out.print(looping[i]);
  // wait for user input
  Scanner scanner = new Scanner(System.in);
  String a =  scanner.nextLine(); 
  // assigne a key to stop the loop before the end
  if(a.equalsIgnoreCase("X") // X, or whatever you want
  break;
}

最新更新