Unix中类似Unix的终端滚动

时间:2011-06-05 15:08:47

标签: java unix less-unix

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

1 个答案:

答案 0 :(得分:1)

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

  • 将您的输出分成几个部分:非常长String =>短串数组(~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;
}