
CODES:
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); ...
找了好久都找不到类似的功能,不会是没有吧……
/div> 1 SoloCompany 2016-11-06 23:54:24 +08:00 能复用的就不能是 stream 了 你见过能倒流的水吗 相应的 api 支持是 pushback input stream, unread, mark / reset |
2 extreme OP @SoloCompany 不是重新读取之前的内容!是遇到 EOF 后继续使用该流读取后面的内容! |
4 zacard 2016-11-07 10:18:38 +08:00 stdin.mark() stdin.reset() |
5 ZiLong 2016-11-07 10:43:16 +08:00 这什么需求,感觉你这只有在死循环里读到空的时候再 new 一个输入流承接 |
6 extreme OP |
8 daemonghost 2016-11-07 16:02:35 +08:00 @extreme public void mark(int readAheadLimit) throws IOException 标记流中的当前位置。对 reset() 的后续调用将尝试将该流重新定位到此点。 覆盖: 类 Reader 中的 mark 参数: readAheadLimit - 在仍保留该标记的情况下,对可读取字符数量的限制。在读取达到或超过此限制的字符后,尝试重置流可能会失败。限制值大于输入缓冲区的大小将导致分配一个新缓冲区,其大小不小于该限制值。因此应该小心使用较大的值。 以上是 JDK1.6 中的描述,从描述来看,如果想重新读取就直接传 0 就行了。 |
9 extreme OP @daemonghost 恩,试了下,不起作用,恐怕 Java 真的做不到这种效果。 |
10 extreme OP 结贴…… IDE 的问题…… |