默认情况下,如果输出了大量文本,终端会向下滚动到最后一行,然后用户必须一直向上滚动才能从顶部读取。我想要一种类似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; }