【发布时间】:2012-03-06 10:58:14
【问题描述】:
执行此转换时出现编译错误:
RandomAccessFile raf = new RandomAccessFile(...)
InputStream is = (InputStream)raf;
RandomAccessFile 应该是InputStream 的子类,尽管不是直接的。
来自文档:
RandomAccessFile 实现了DataInput,而DataInputstream & InputStream
为什么无效?
还感谢您对将RandomAccessFile 用作InputStream 的正确方法的意见?
我正在考虑包装方法。
【问题讨论】:
-
RandomAccessFile的要点在于它不是流(不是顺序的)。你为什么要改变它?只需创建一个FileInputStream。 -
您的“文件缓存不受 RAF 干扰......”是什么意思?这段代码的最终目标是什么?如果您需要帮助解决问题,您需要告知详细信息。考虑查看此链接How To s The Smart Way,其中包含有关如何更轻松地回答论坛问题的重要提示。
-
@Jeffrey 好吧,那是无知的......有很多案例。例如,如果您使用来自使用
InputStream的apache commons 中的IOUtils.copyLarge,那么您将寻找您的RandomAccessFile,然后创建包装器InputStream,但同样没有理由不能RandomAccessFile扩展InputStream...