gpt4 book ai didi

java - BufferedReader.reset() 方法中的异常

转载 作者:行者123 更新时间:2023-11-30 09:06:42 25 4
gpt4 key购买 nike

我有一个用于读取文件的 hasNext() 方法。如果它不是文件末尾,则返回 true。在这个方法中它有一个异常。

异常信息:

  • 异常发生在:java.io.BufferedReader.reset(BufferedReader.java:497)
  • 类型:java.io.IOException
  • 消息:标记为无效

我的 hasNext() 方法:

@Override
public boolean hasNext() {
try {
super.getSourceRead().mark(1);
if (super.getSourceRead().read() < 0) {
return false;
}
getSourceRead().reset();
return true;
} catch (IOException e) {
Logger.exceptionOccurred(e);
return false;
} catch (NullPointerException e) {
Logger.exceptionOccurred(e);
return false;
}
}

最佳答案

正如doc for 1.5 中所写的那样:

After reading this many characters, attempting to reset the stream may fail.

因此在您的情况下,它说它可能在读取 1 个字符后失败。

将限制设置为 2 将我们置于安全区域。

并且只是做一个唠叨风格的评论:我希望你在类​​上的某个地方有一个常量或一个成员来限制这个限制(抱歉我不得不:))

关于java - BufferedReader.reset() 方法中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327835/

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