gpt4 book ai didi

java - 我怎么知道哪个文件流支持在 Java 中查找

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:59:00 25 4
gpt4 key购买 nike

java.io.InputStream.skip()说“抛出:IOException - 如果流不支持查找,或者发生其他一些 I/O 错误。”

我怎么知道哪个文件流支持搜索?

当我在 google 上找到 Seekable 时,但我可以看到简单的 FileInputStream、ByteArrayInputStream ... 也支持 skip(),我的意思是不给出 IOException;它们不扩展 Seekable。

最佳答案

唯一可以确定的方法是阅读您感兴趣的任何特定流的 javadoc。那里的继承层次结构很糟糕,但它是一个旧类。

编辑:我刚刚阅读了 javadoc,虽然看起来 InputStream 本身 确实 实现了它(使用天真的读取/丢弃实现),但它说

"Subclasses are encouraged to provide a more efficient implementation of this method. For instance, the implementation may depend on the ability to seek."

现在,如果不支持查找,子类可以始终使用默认实现,而不是抛出 IOException。然而,很可能是由于向后兼容性,这个奇怪的设计工件被保留了下来。

关于java - 我怎么知道哪个文件流支持在 Java 中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136402/

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