Número de líneas de un fichero Noviembre 20, 2006
Publicado por lineadecodigo en : Java , trackbackLa idea de este ejemplo es contar el número de líneas que tiene un fichero de texto utilizando las librerias Java IO del lenguaje Java. La forma en la que lo vamos a resolver no es la más optima, si bien es la más sencilla de implementar y entender.
De inicio deberemos de tener un fichero de texto con contenido. A dicho fichero lo llamaremos fichero.txt. Para abrir este fichero utilizaremos la clase FileReader. Con dicha clase obtendremos una referencia sobre el fichero que queremos conocer su número de líneas. Veamos la línea de código:
FileReader fr = new FileReader("fichero.txt");
Lo siguiente que vamos a hacer es leer el contenido del mismo. Para ello no nos vale el FileReader y nos tendremos que apoyar en un buffer. En este caso usamos un BufferReader, el cual espera como parámetro la referencia que tenemos sobre el. Esta será nuestra línea de código:
BufferedReader bf = new BufferedReader(fr);
Apoyandonos en el método .readLine() del buffer, podremos ir leyendo el contenido de cada una de las filas del fichero. Esta lectura la podemos hacer mediante un bucle hasta que el contenido de la lectura sea null. Esto querra decir que ya no hay más contenido en el fichero.
En cada una de las lecturas de línea iremos incrementando un contador, el cual lleva la cuenta de las líneas del fichero
long lNumeroLineas = 0;
while ((sCadena = bf.readLine())!=null) {
lNumeroLineas++;
}
En este proceso tenemos que tener especial cuidado con dos excepciones. La primera es FileNotFoundException. Esta se producirá si el nombre del fichero sobre el que queremos obtener la referencia, no existe. La segunda será IOException. Esta execpión es lanzada si se tienen problemas en el acceso al propio fichero o stream de entrada. Es por ello que todo nuestro código deberá de estar en un bucle try-catch que controle dichas excepciones.
try{
//Código
} catch (FileNotFoundException fnfe){
fnfe.printStackTrace();
} catch (IOException ioe){
ioe.printStackTrace();
}
Solo nos quedará el mostrar por pantalla el número de líneas que hemos acumulado. Para ello necesitaremos la siguiente línea de código:
System.out.println("El ficherot tiene " + lNumeroLineas + " lineas");
Articulos Similares:
- Listar contenido de un directorio con ASP
- Escribir en un fichero de texto con Java
- Comparar el contenido de dos ficheros con Java
- Leer fichero de texto con Java
- Generar un fichero GZIP con Java
Enviar entrada por email
|
Imprimir
| 12922 visitas






Comentarios»
que buenoque pongan cosas tan utiles comoestas
gracias por esta algoritmo … fue muy util en un momento de urgencia!
Pablo, me alegra que te haya servido. A ver si me acuerdo de ponerle el código fuente para que sea más sencillo utilizarlo.
Para completar este código de manera correcta faltaría cerrar el lector de archivo.
Entre un try-catch para IOException:
bf.close();
Suerte
como seria el codigo completo??? porfavor!!!
Tengo que darte las gracias. Por que sin la ayuda de tu código no hubiese podido hacer este trabajo.
el programa lo que hace es contar la cantidad de palabras dentro de un archivo de texto plano.
Por cierto lo hice en linux, así que lo único que deberían cambiar los que lo deseen utilizar, sería la ruta de el archivo.
No está de más decir que en Windows deben de ponerle la extensión; aunque, En linux no es tan necesario a menos de que le pongan extensión a el archivo.
le dejé los nombres de las variables tal y como tu las dejaste, lo único que hice fue hacer un mix de tu programa de contar palabras en un string con el de contar las líneas (de hecho fue ahí en dónde me di cuenta… XD)
Aqui te dejo el codigo:
String scadena;
FileReader fr = new FileReader(“//home/miguelangel/texto”);
BufferedReader bf = new BufferedReader(fr);
long contpalabras=0;
while((scadena = bf.readLine())!=null)
{
StringTokenizer st = new StringTokenizer(scadena);
contpalabras += st.countTokens();
}
System.out.println(“Cantidad de palabras ” + contpalabras);
nuevamente reitero que este código no hubiese sido posible sin la ayuda de el autor de esta web.
De verdad Te lo agradezco.
Att: Miguel Angel
Nuevamente, muchas gracias