我觉得这很傻,但是:我如何从控制台中读取一个未输入但已写入控制台的字符串?
例如,如果我在控制台上打印一行,我怎么能在事后阅读?我知道这是非典型的。
答案 0 :(得分:2)
除非在某些特殊情况下,你不能像布拉德在评论中指出的那样。作为理由,请考虑当您将某些文本发送到控制台(通过标准输出或标准错误)进行打印时,无法保证文本实际上将被打印。也许用户已将该输出流重定向到/dev/null
,在这种情况下,文本已经消失了。或者也许文本已滚出视图。
基本上,不要指望能够访问发送到控制台输出的内容。如果需要,请在程序中保留一份副本。如果您正试图获取另一个程序发送到控制台的内容,则需要使用某种不同的安排,如共享内存,套接字或fifo管道。
答案 1 :(得分:1)
将System.in和System.out替换为您自己的流和 尝试在System.in和System.out;
之间创建一个管道我不确定,是否有效;