我觉得问这个问题很愚蠢,但是:如何从控制台读取一个不是输入但已写入控制台的字符串?
例如,如果我将一行打印到控制台,我如何才能在事后读取它?我知道这是不典型的。
最佳答案
除非在某些特殊情况下,否则不能,正如 Brad 在评论中指出的那样。作为一个理由,请考虑当您将一些文本发送到控制台(通过标准输出或标准错误)进行打印时,不能保证该文本实际上会被打印。也许用户已将该输出流重定向到 /dev/null
,在这种情况下,文本将永远消失。或者文本可能已滚动到 View 之外。
基本上,不要指望能够访问发送到控制台进行输出的内容。如果您需要它,请在您的程序中保留一份副本。如果您试图获取另一个程序发送到控制台的内容,则需要使用某种不同的安排,例如共享内存、套接字或 fifo 管道。
关于java - 从控制台读取已写入的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190663/