feed twitter facebook LinkedIn facebook

Java » Número de líneas de un fichero

Noviembre 20, 2006 por Víctor Cuervo . 21285 visitas 14 Comentarios Imprimir Imprimir

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 BufferedReader, 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 fichero tiene " + lNumeroLineas + " lineas");
Foro sobre Java IO
Foro sobre Java IO
tags: , , , , , , ,

Artículos relacionados:

14 comentarios »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

1 2
  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

  7. Troll
    Enero 12, 2011 #

    Maricquita quien lo lea!

  8. Troll
    Enero 12, 2011 #

    Mariquita quien lo vuelva a leer!

  9. veronica
    Marzo 7, 2011 #

    Hola buenas a todos!necesito ayuda con Java. me han pedido hacer un tad diccionario con el metodo cargar(D: in out Diccionario;F:in string) que añade al diccionario D la lista de palabras almacenadas en el fichero de texto F. En el fichero hay un palabra por linea y cada palabra tiene, como maximo 25 caracteres.

    Les agradeceria si alguien me puede ayudar.
    saludos.

  10. veronica
    Marzo 7, 2011 #

    Soy nueva en esto:).

1 2

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*