Hola:
Mira la API de RandomAccessFile, su método writeUTF()
http://docs.oracle.com/javase/7/docs...ccessFile.html . El método escribe primero un short (2 bytes) para poner la longitud de la cadena y luego la cadena. Así que toda cadena escrita con writeUTF() y si son caracteres ascii normales, ocupa en fichero la longituda de la cadena + 2. Idem con luis y con cualquier otra cadena que tengas en el fichero y haya sido escrita con writeUTF().
Así que lo dicho, la cadena de pepe en realidad son 6 bytes (2 + 4). Y eso cuadra con que tengas que poner la posición 6 para leer el 40.
Se bueno.