Lógica de la Aplicación.

En esta sección echaremos un vistazo a las clases Java predefinidas que nos serán más usuales en la construcción de nuestras aplicaciones.

Cadenas de Caracteres.

Una de las tareas más habituales en la mayor parte de las aplicaciones es el tratamiento con cadenas de caracteres. Para ello Java provee de las dos clases java.lang.String y java.lang.StringBuffer.

Tenemos un ejemplo en:

\Curso Java\Java\ejemplos\curso0\MiString.java


Wrappers.

Las clases java.lang.Boolean, java.lang.Character, java.lang.Integer, java.lang.Long, java.lang.Float y java.lang.Double son las llamadas wrappers (envoltorios): permiten utilizar tipos primitivos como si fueran clases y le dan funcionalidad sobre todo de cara a conversiones. Por ejemplo:

Float miNumF = new Float( 18.45 );
Character unCar = new Character( '?' );

Estas clases tienen operaciones de conversión numérica. Por ejemplo podemos devolver el valor entero (int) correspondiente a un número Float:

int unEntero = miNumF.intValue();

O algunas utilidades más como manejo de valores infinitos y NaN:

double noNumero = Double.NaN;  // atributo de clase (cte)
if (miNumF.isInfinite()) …

E incluso conversiones de string a número:

Double d  = Double.valueOf( "3425234.564356444" );
double d2 = Double.valueOf( "3425234.564356444" ).doubleValue();


Colecciones de elementos.

Java provee de una amplia variedad de clases para el manejo de colecciones de elementos, entre las cuales merece la pena destacar: java.util.Vector, java.util.Enumeration y java.util.Hashtable.

Tenemos unos ejemplos en:

\Curso Java\Java\ejemplos\curso0\VectorEnumeration.java
\Curso Java\Java\ejemplos\curso0\MiHashtable.java


Sumario de paquetes estándard.

He aquí la referencia al sumario de paquetes estándard que Java incorpora en su versión 1.1.6 packages.


Entrada/Salida en Java.

La entrada y salida en Java se hace en base a lo que se llaman flujos o filtros. Una de las características de estos flujos es que encapsulan la operación que estamos haciendo realmente, es decir, yo puedo colocar uno de estos filtros sobre un fichero en disco, sobre un socket de red, o sobre cualquier otra cosa, que yo accederé de un modo uniforme a través de la misma interfaz sin importarme qué es concretamente a lo que yo estoy accediendo.

Otra característica importante de los flujos es que se pueden solapar unos encima de otros, así por ejemplo, si yo estoy accediendo a un fichero mediante un determinado flujo yo puedo poner por debajo de este flujo, por ejemplo, otro que encripte, o que comprima a zip, o que optimice el acceso a los datos y seguiré accediendo mediante el flujo superior en la misma forma.

El paquete que se encarga de E/S en Java es java.io.


Ejemplo 1.

Crearemos unos flujos de entrada para leer un fichero y visualizarlo por pantalla.

El ejemplo se encuentra en el archivo:

\Curso Java\Java\Ejemplos\curso2\Flujos.java
 


Ejemplo 2.

Este ejemplo crea un flujo de entrada para leer un fichero y uno de salida para escribirlo. Notar que yo puedo comentar y descomentar la línea:

BufferedOutputStream bosSalida = new BufferedOutputStream(fosSalida);

Sin que aparentemente haya ninguna diferencia, pero realmente sí que la hay. Este flujo de salida se coloca por debajo del que nosotros accedemos para optimizar el acceso al flujo mediante el empleo de buffers, pero es lo bueno de los filtros, que yo podría añadir este filtro sin cambiar mi código, igual lo podría haber hecho para que mi salida fuese encriptada, zipeada, o cualquier otra cosa que se me ocurra.

El ejemplo se encuentra en el archivo:

\Curso Java\Java\Ejemplos\curso2\Flujos2.java
 
 

Seguir