CODES:
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); ...
找了好久都找不到类似的功能,不会是没有吧……
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 的问题…… |