Líneas vacías de un fichero con un Stream

19/Sep/2015 Java Deja un comentario

Una de las cosas buenas de la programación funcional, cuando se entiende, es la facilidad de programar las cosas. Hoy vamos a ver como podemos contar las líneas vacías de un fichero con un Stream mediante programación funcional. Y así lo podremos comparar con el anterior artículo sobre Cómo contar líneas vacías de un fichero con Java.

Inicialmente vamos a realizar la apertura del fichero mediante un FileReader y un BufferedReader.

  1. FileReader fr = new FileReader("resources/fichero.txt");

Ahora sobre el BufferedReader vamos a aplicar la programación funcional. Una de las cosas que tenemos que saber de la programación funcional es que, de forma contraria a la programación imperativa, no existe el concepto de bucles.

Lo primero que haremos será obtener un Stream, este nos lo proporciona el método .lines().

  1. long vacias = bf.lines();

El manejo de Stream está disponible a partir de Java 1.8. Tenlo en cuenta cuando estés compilando el programa.

El Stream es el elemento que contiene los datos del fichero y sobre el cual vamos a aplicar operaciones. La primera será obtener las filas vacías, así que aplicaremos un filtro mediante el método .filter().

  1. long vacias = bf.lines().filter();

En este filtro utilizaremos un predicado con una expresión lambda. La expresión lambda que vamos a utilizar es:

  1. l -> l.isEmpty()

Esta expresión lambda lo que indica es que por cada línea, seleccionar aquellas que estén vacías. Es decir, sobre todas las líneas hemos aplicado un método filtro y el filtro indica que deben seleccionarse las líneas vacías.

Así que solo nos quedará realizar una última operación u operación final, que será contar el número de elementos que devuelve el filtro. Esto lo hace el método .count().

  1. long vacias = bf.lines().filter(l -> l.isEmpty()).count();

Como podéis ver, mediante la programación funcional en Java podemos realizar la cuenta de líneas vacías de un fichero con un Stream mediante una única línea de código.

Vídeos sobre Java


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*