gpt4 book ai didi

java - java中的Mark()/重置BufferedReader

转载 作者:行者123 更新时间:2023-12-01 14:18:03 25 4
gpt4 key购买 nike

我彻底理解了机制标记和重置的工作原理:但是我想知道为什么以下代码取自 here ,即使我用 br.mark(0) 替换 br.mark(26) 也能工作。由于参数是要在标记之前读取的字符数。如果我把 0 作为参数,它不应该读取任何内容。相反,它就像我没有改变任何东西一样。为什么它会这样?

br = new BufferedReader(isr);
// reads and prints BufferedReader
System.out.println((char)br.read());
System.out.println((char)br.read());
System.out.println((char)br.read());
// mark invoked at this position
br.mark(0);


System.out.println("mark() invoked");
System.out.println((char)br.read());
System.out.println((char)br.read());
System.err.println("The Thing to be said:"+(char)br.read());

// reset() repositioned the stream to the mark
br.reset();
System.out.println("reset() invoked");
System.out.println((char)br.read());
System.out.println((char)br.read());
System.out.println((char)br.read());

最佳答案

因为这不是严格的限制,只是建议。正如javadoc所述:

An attempt to reset the stream after reading characters up to this limit or beyond may fail.

(强调我的)

关于java - java中的Mark()/重置BufferedReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com