Java 是否可以重新打开默认的System.in stream?
我有一个非常简单又奇怪的问题。Java 是否可以重新打开默认的System.in stream?,java,networking,io,stream,Java,Networking,Io,Stream,我有一个非常简单又奇怪的问题。 考虑下面的 void close(InputStream is){ is.close(); } 并假设我们将默认的System.in(键盘)流传递给它以关闭 问题是,一旦我们关闭系统,在中,是否可以再次打开它?!指令中是否有表示系统的类 另一个问题是,如果System.in关闭怎么办 最后一个问题,为什么我们不能在另一个线程读取时关闭系统?有点锁吗?还是什么 感谢高级版。我敢打赌,由于考虑到JavaDoc“它已经打开了”,所以可以以某种方式重新打开它。当然
考虑下面的
void close(InputStream is){
is.close();
}
并假设我们将默认的System.in
(键盘)流传递给它以关闭
问题是,一旦我们关闭系统,在
中,是否可以再次打开它?!指令中是否有表示系统的类
另一个问题是,如果System.in
关闭怎么办
最后一个问题,为什么我们不能在另一个线程读取时关闭系统?有点锁吗?还是什么
感谢高级版。我敢打赌,由于考虑到JavaDoc“它已经打开了”,所以可以以某种方式重新打开它。当然,默认情况下必须打开它,但我不知道有什么方法可以重新打开它。我可以想象使用一些本地人,摆弄exec或者一些简单的东西会有所帮助
如果流关闭,则不会发生任何特殊情况。我刚试过。它与任何其他流一样工作。你只会失去你的系统,这有点。。。悲伤本身
最有可能的是一些锁定涉及。如果不同步,您可能会得到脏的读取和诸如此类的东西
但是:你。做不希望到接近。你的。标准输入。流动句号。即使这些事情是可能的,这只是。。。完全错了。如果文件是或可能是标准输入,请不要关闭它,将来可能需要从标准输入中读取@难道不是2巴我该怎么办?!我要找一个班级/会员。我还检查了当另一个线程正在读取流时,我无法关闭流(已阻止)@parsaporahmad你是对的。对不起,你说的和我说的一样,怎么说?!我知道这可能像你提到的那样,但是怎么可能呢?你提到了一个方法,这个名字?有可能。我会帮助你的。您只需找出如何从操作系统获取流并将其传递给该函数即可第二个问题我该怎么回答?如果关闭一条小溪会发生什么?没有什么。关门了“此方法会一直阻塞,直到输入数据可用、检测到流结束或引发异常。”因此,基本上您无法关闭它,因为对流的访问被等待阻塞。