Cita:
Iniciado por GreenEyed Eso quiere decir que has hecho un readUTF() con el "puntero" en el final del fichero. Se supone que en un fichero de acceso aleatorio tu tienes que saber donde acaba el fichero y no leer más alla del final, y por eso da una excepción. En los Streams no da error "leer hasta el final" por que es el funcionamiento normal para leer de un Stream.
Por cierto, no se si es un por un ejercicio o por aprender, que no tiene nada de malo, pero si no, Java ya implementa algoritmos de ordenación de vectores, así que no hace falta que los implementes tu mismo.
S!
Es por un ejercicio :p
Volviendo al tema, hay una cosa que has dicho y que me ha sorprendido (lo marcado en negrita). En mi codigo yo situo el puntero antes de realizar la lectura del string por lo que no tendria mucho sentido que ahora el f.seek(long) hiciera lo que le salga de las narices xD
Para comprender mejor lo que quiero hacer pondre un ejemplo:
Imaginad la siguiente estructura de fichero:
Código:
pedro madrid 87
maria barcelona 46
alberto badajoz 24
martin asturias 23
Previamente mi programa ya ha construido un vector con el numero de lineas (en este caso 4 lineas por lo que el vector seria [1,2,3,4].
Si quiero mostrar ordenando alfabeticamente sin emplear vectores, mi programa lo que hace es el algoritmo de la burbuja comparando los nombres (es decir, compara pedro con maria, con alberto, etc...) y ordenar vector de tal manera que el orden sea las lineas alfabeticamente.
En este ejemplo quedaria [3,2,4,1]
Luego yo con otra funcion, accederia al puntero referenciado por la linea y mostraria las lineas segun el criterio del vector.
Espero haberme explicado :P