Да, в Java можно перенаправить потоки стандартного ввода/вывода. Для этого можно использовать классы System.in, System.out и System.err. Например, чтобы перенаправить стандартный поток ввода на файл, можно использовать класс FileInputStream:
System.setIn(new FileInputStream("input.txt"));
После этого все вызовы System.in.read() будут читать данные из файла "input.txt" вместо стандартного потока ввода.
Аналогично, чтобы перенаправить стандартный поток вывода в файл, можно использовать класс FileOutputStream:
System.setOut(new FileOutputStream("output.txt"));
После этого все вызовы System.out.println() будут записывать данные в файл "output.txt" вместо стандартного потока вывода.
При необходимости можно также перенаправить стандартный поток ошибок, используя метод System.setErr().
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov