jump to navigation

Número de líneas de un fichero Noviembre 20, 2006

Publicado por lineadecodigo en : Java , trackback

La 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:

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 12922 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (1 votos, media: 2.00 de 5)
Loading ... Loading ...

Comentarios»

1. alejandro - Mayo 11, 2007

que buenoque pongan cosas tan utiles comoestas

2. pablo - Mayo 30, 2007

gracias por esta algoritmo … fue muy util en un momento de urgencia!

3. lineadecodigo - Mayo 31, 2007

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.

4. Praiet - Diciembre 4, 2007

Para completar este código de manera correcta faltaría cerrar el lector de archivo.

Entre un try-catch para IOException:

bf.close();

Suerte :)

5. Alfredo - Febrero 28, 2008

como seria el codigo completo??? porfavor!!!

6. Miguel Angel - Abril 24, 2010

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


Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen