Чтение уже написанного текста с консоли - PullRequest
1 голос
/ 19 ноября 2011

Я чувствую себя глупо, спрашивая это, но: как я могу прочитать строку с консоли , которая не введена, но уже записана на консоль ?

Например, если я печатаюстрока к консоли, как я могу прочитать это после факта?Я знаю, что это нетипично.

Ответы [ 2 ]

2 голосов
/ 19 ноября 2011

За исключением определенных особых обстоятельств, вы не можете, как указал Брэд в комментариях.В качестве оправдания следует учитывать, что когда вы отправляете на консоль некоторый текст (через стандартный вывод или стандартную ошибку) для печати, нет никакой гарантии, что текст на самом деле будет напечатан.Возможно, пользователь перенаправил этот поток вывода на /dev/null, и в этом случае текст пропал навсегда.Или, возможно, текст прокрутился из поля зрения.

По сути, не рассчитывайте на то, что когда-либо сможете получить доступ к тому, что было отправлено на консоль для вывода.Если вам это нужно, сохраните копию в своей программе.И если вы пытаетесь получить что-то, что другая программа отправляет на консоль, вам нужно использовать какое-то другое расположение, например разделяемую память, сокеты или канал fifo.

1 голос
/ 19 ноября 2011

Замените и System.in и System.out вашими собственными потоками и попробуйте создать канал между System.in и System.out;

Я не уверен, работает ли он или нет;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...