Unix менее похожа на прокрутку терминала в Java
По умолчанию, если выводится много текста, терминал прокручивается до самой последней строки, а затем пользователь должен прокручивать до конца, чтобы читать сверху. Мне нужен Java-подобный способ реализации прокрутки, предлагаемой в Unix-программе "less". Я хотел бы вывести много текста, чтобы пользователь мог начинать сверху и прокручивать вниз в своем темпе.
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; }