Está en la página 1de 3

FOMENTO OCUPACIONAL FOC ®

Módulo: ACCESO A DATOS


Unidad 2: Gestión de la información almacenada en ficheros

Contar caracteres, palabras y líneas

Descripción:

Realizar un programa que lea un archivo de texto y cuente cuantos caracteres, palabras
y líneas tiene.

Objetivos:

 Utilizar clases de entrada y salida de ficheros.


 Utilizar línea de comandos, argc y argv.
 Usar métodos de la clase String.

Recursos:

 Acceso a Internet.
 Netbeans o Eclipse

AD_U02_02_EJERS_Contar.docx PÁGINA 1
FOMENTO OCUPACIONAL FOC ®

Resolución:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

/**
* Clase EjercicioContarEnArchivo
* Cuenta el número de caracteres, palabras y líneas en un archivo. Las palabras son las
separadas por espacios en blanco
* Sintaxis: java EjercicioContarEnArchivo nombreArchivo
*/
public class EjercicioContarEnArchivo {
public static void main(String[] args) throws IOException {
if (args.length != 1) {
System.out.println("Sintaxis incorrecta: Número de Argumentos no válido.");
System.out.println("Sintaxis: java EjercicioContarEnArchivo nombreArchivo");
System.exit(1);
}
// Comprobamos si el nombre de archivo existe
File nombreArchivo = new File(args[0]);
if (!nombreArchivo.exists()) {
System.out.println(args[1] + " no existe.");
}
//Inicializamos a 0 contadores de caracteres, palabras y líneas
int caracteres = 0;
int palabras = 0;
int lineas = 0;

//Abrimos el archivo
try {
BufferedReader bf = new BufferedReader (new FileReader (nombreArchivo));
String s;
while ((s=bf.readLine())!= null ) {
System.out.println(s);
//Sumamos 1 a las líneas cada vez que hacemos readLine()
lineas++;
//Sumamos el número de caracteres por línea
caracteres += s.length();
//Dividimos cada línea por espacios y vamos añadiendo 1 por cada palabra encontrada
String[] dividoPorEspacios = s.split(" ");
for (String palabra : dividoPorEspacios) {
palabras++;
}
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
//Imprimimos la cuenta final
System.out.println("Caracteres: " + caracteres);
System.out.println("Palabras: " + palabras);
System.out.println("Lineas: " + lineas);
}
}

AD_U02_02_EJERS_Contar.docx PÁGINA 2
FOMENTO OCUPACIONAL FOC ®

Imagen: archivo con texto

Para el archivo de la imagen “archivo con texto” nos daría el resultado de la imagen
“Ejecución EjercicioContarEnArchivo”.

Imagen: Ejecución EjercicioContarEnArchivo

AD_U02_02_EJERS_Contar.docx PÁGINA 3

También podría gustarte