我得到的編譯錯誤,當我做這個轉換:爲什麼不能將RandomAccessFile轉換爲InputStream?
RandomAccessFile raf = new RandomAccessFile(...)
InputStream is = (InputStream)raf;
RandomAccessFile
應該繼承InputStream
雖然不能直接。
從文檔:
RandomAccessFile
實現DataInput
這inturn DataInputstream
& InputStream
這是爲什麼無效?
同樣感謝您對什麼是正確的方式使用RandomAccessFile
作爲InputStream
的輸入?
我正在考慮包裝方法。
RandomAccessFile的意思是它不是流(它不是順序的)。你爲什麼要改變它?只需製作一個'FileInputStream'。 – Jeffrey 2012-02-15 04:05:34
你的「文件緩存不受RAF干擾......」是什麼意思?這段代碼的最終目標是什麼?如果您想幫助解決問題,您需要告訴詳情。考慮檢查這個鏈接[如何問問題的智能方式](http://catb.org/~esr/faqs/smart-questions.html),其中包含有關如何使論壇問題更容易回答的重要提示。 – 2012-02-15 04:32:11
@傑弗裏好,那是無知......有很多情況。例如,如果你從使用'InputStream'的apache commons中使用'IOUtils.copyLarge',所以你尋找你的'RandomAccessFile',然後創建包裝'InputStream',但是沒有理由不能'RandomAccessFile'延伸' InputStream' ... – Enerccio 2017-12-19 16:03:21