我这里有一个程序,只包括扫描仪和输出。我想让程序显示的是,显示一个扫描仪,下面是输出。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter anything: ");
scan.nextLine();
//while the scanner's text cursor shows, the bottom texts below also shows.
System.out.println("bottom text");
System.out.println("bottom text");
System.out.println("bottom text");
System.out.println("bottom text");
System.out.println("bottom text");
System.out.println("bottom text");
System.out.println("bottom text");
/* what I wanted the output to show is this:
Enter anything: | << text cursor
bottom text
bottom text
bottom text
bottom text
bottom text
bottom text
bottom text
but the output shows like this instead:
Enter anything: |
*/
}//end of method
}
因为它只有在扫描仪被使用后才会显示下面的输出。有没有可能或者有什么方法可以同时显示扫描仪和下面的文字?TIA:)
我试了一下...
CompletableFuture将使用一个新的线程来旋转。runAsync( () -> { return null; } )
您也可以使用 supplyAsync(() -> { returns anObject })
如果你想从线程中得到一个结果。然后你可以链上额外的线程,这些线程可以是consumerssuppliers,也可以是两者都有的线程。
public static void main(String[] args) {
CompletableFuture.runAsync(() -> {
try {
Thread.sleep(100); // delay start by 1/10 of a second.
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println();
System.out.println("bottom text");
System.out.println("bottom text");
System.out.println("bottom text");
System.out.println("bottom text");
});
System.out.println("Enter anything: ");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
System.out.println("You entered: " + input);
}
不幸的是,当我把光标放在了 Enter anything:
而光标直接到了底部,所以输出的结果并不是你想要的...
Enter anything:
bottom text
bottom text
bottom text
bottom text
something <<<<<< My input here
You entered: something
Process finished with exit code 0
我不是100%确定你要做的事情是可能的,用这么简单的命令集。我想你需要更全面的东西来实现你想要的东西。
也许有人能改进这个?