gpt4 book ai didi

java - 检查 Reader 是否为空的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 01:59:21 25 4
gpt4 key购买 nike

在将读取器传递给某些外部函数之前,我需要检测 Reader 是否为空(不会产生任何数据)。

我能想到的最好办法是将我的 Reader 包装在 BufferedReader 中,保证提供 mark/reset 功能,然后在将流重置到其原始位置之前尝试读取单个字符。

BufferedReader buffered = new BufferedReader(myReader);
if (!isEmpty(buffered)) {
someOtherFunction(buffered);
}

private boolean isEmpty(BufferedReader reader) throws IOException {
reader.mark(1);
int c = reader.read();
reader.reset();
return c < 0;
}

有更好的方法吗?

最佳答案

使用ready()检查流是否可供读取here docs

并且还建议在检查 ready() 之前检查 null

public boolean ready() throws IOException

告知该流是否已准备好读取。如果缓冲区不为空,或者底层字符流已准备好,则缓冲字符流已准备好。

注意:

True if the next read() is guaranteed not to block for input, false otherwise. Note that returning false does not guarantee that the next read will block.

关于java - 检查 Reader 是否为空的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53402149/

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