¿Por qué no se puede convertir un RandomAccessFile a Inputstream?

Recibo un error de compilación cuando hago este reparto:

RandomAccessFile raf = new RandomAccessFile(...)
InputStream is = (InputStream)raf;

RandomAccessFilee supone que @ subclaseInputStream aunque no directamente.

De documentos:

RandomAccessFile implementosDataInput que a su vezDataInputstream & InputStream

¿Por qué esto no es válido?

También aprecio su aporte sobre cuál sería la forma correcta de usarRandomAccessFile comoInputStream?

Estoy pensando en un enfoque envolvente.

Respuestas a la pregunta(8)

Su respuesta a la pregunta