¿Cómo se puede leer un archivo desde un cierto desplazamiento en Java?

¡Oye, estoy intentando abrir un archivo y leer desde un desplazamiento de cierta longitud! Leí este tema: ¿Cómo leer una línea específica usando el número de línea específico de un archivo en Java? allí dijo que no es posible leer una cierta línea sin leer las líneas antes, ¡pero me pregunto sobre los bytes!

FileReader location = new FileReader(file); BufferedReader inputFile = new BufferedReader(location); // Read from bytes 1000 to 2000 // Something like this inputFile.read(1000,2000); 

¿Es posible leer ciertos bytes desde un desplazamiento conocido?

RandomAccessFile expone una función:

 seek(long pos) Sets the file-pointer offset, measured from the beginning of this file, at which the next read or write occurs. 

FileInputStream.getChannel().position(123)

Esta es otra posibilidad además de RandomAccessFile :

 File f = File.createTempFile("aaa", null); byte[] out = new byte[]{0, 1, 2}; FileOutputStream o = new FileOutputStream(f); o.write(out); o.close(); FileInputStream i = new FileInputStream(f); i.getChannel().position(1); assert i.read() == out[1]; i.close(); f.delete(); 

Esto debería estar bien, ya que los documentos para FileInputStream#getChannel dicen que:

Cambiar la posición del canal, ya sea explícitamente o leyendo, cambiará la posición del archivo de esta secuencia.

Sin embargo, no sé cómo este método se compara con RandomAccessFile .