Важное слово в моем вопросе: интерактивный : для соревнования по программированию (онлайн-судья UVa) я пишу интерактивный код Java: он выводится на System.out и ждет ответов на System.in ,
Я хочу проверить скорость этого кода, но если я выполняю взаимодействие вручную, мои навыки набора текста замедляют выполнение, и измерение смещено.
Таким образом, я хочу поток / app / script / все, что видит, когда мое приложение пишет в System.out и (этот поток / app / script / что угодно) затем пишет что-то, что читается моим приложением, используя его System.in .
Мое приложение должно связываться с использованием System.in и System.out, потому что именно так оно будет оцениваться после того, как я отправил его онлайн-судье.
Я думаю, что многопоточность не сработает, потому что System.in всегда читается с клавиатуры, а не из другого потока.
import java.util.Scanner;
public class Main {
public static void main(final String[] args) {
System.out.println("What now?");
final Scanner scanner = new Scanner(System.in);
final String response = scanner.nextLine();
scanner.close();
System.out.println("Finished: " + response);
}
}
Как я могу заставить этот код работать без ввода текста человеком на клавиатуре?