Возможно ли возобновить стандартные потоки ввода-вывода консоли во время выполнения после их закрытия?Как renitialize Поток ввода-вывода по умолчанию
public static void main(String[] args) throws IOException {
System.out.println("Hello World!!!");
System.out.println("1:" + System.in.read());
System.out.println("" + FileDescriptor.in.valid()); //true
System.in.close();
System.out.println("" + FileDescriptor.in.valid()); //false
System.out.println("2:" + System.in.read()); //IOException
System.in.close();
}
От this поста я мог понять, что private static native void setIn0(InputStream in);
родной функция используется для инициализации окончательного ввода/вывода потоков в private static void initializeSystemClass()
частного способа после инициализации потока.
Могу ли я отредактировать потоки ввода-вывода?
Edit:
Как System.in
является final
объект, который я не могу изменить его с вещами, как
System.in=new InputStream() {
@Override
public int read() throws IOException {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
во время выполнения ...
Что я ожидал это решение через Native Методы/Функция для извлечения дескриптора Консоли
Почему вы хотите сначала вызвать 'System.in.close()'? –
Я экспериментировал с потоками, которые все .. –
Затем закончите свой эксперимент: сделайте код, который, по вашему мнению, может работать (или нет), и получите свой собственный ответ ... –