Saltar la navegación

3.1.- Ejemplo comentado de una clase con flujos.

Se pueden apreciar perlas de cristal de diferentes colores
JD Hancock (CC BY)

Vamos a ver un ejemplo con una de las clases comentadas, en concreto, con StreamTokenizer.

La clase StreamTokenizer obtiene un flujo de entrada y lo divide en "tokens". El flujo tokenizer puede reconocer identificadores, números y otras cadenas.

El ejemplo que puedes descargarte en el siguiente recurso, muestra cómo utilizar la clase StreamTokenizer para contar números y palabras de un fichero de texto. Se abre el flujo con ayuda de la clase FileReader, y puedes ver cómo se "monta" el flujo StreamTokenizer sobre el FileReader, es decir, que se construye el objeto StreamTokenizer con el flujo FileReader como argumento, y entonces se empieza a iterar sobre él.

Clase para leer palabras y números.

El método nextToken devuelve un int que indica el tipo de token leído. Hay una serie de constantes definidas para determinar el tipo de token:

  • TT_WORD indica que el token es una palabra.
  • TT_NUMBER indica que el token es un número.
  • TT_EOL indica que se ha leído el fin de línea.
  • TT_EOF indica que se ha llegado al fin del flujo de entrada.

En el código de la clase, apreciamos que se iterará hasta llegar al fin del fichero. Para cada token, se mira su tipo, y según el tipo se incrementa el contador de palabras o de números.

Autoevaluación

Indica si la siguiente afirmación es verdadera o falsa.

Pregunta 1

Según el sistema operativo que utilicemos, habrá que utilizar un flujo u otro. ¿Verdadero o Falso?