2. Flujos de datos
La información que se necesita un
programa para su función obtiene mediante
una entrada de datos de una fuente que
puede ser de tipos muy variados, puede de
texto, binario, imágenes, etc.
3. Flujos de datos
Para obtener la información, el programa abre un conducto (stream)
de entrada a la
fuente de información (archivo, memoria, red...).
Para enviar información, el programa abre un conducto (stream) de
salida al destino
externo de información (archivo, red, memoria...)
4. Creación lectura y escritura de flujo
Todos los datos fluyen a través del ordenador desde una
entrada hacia una salida. Este flujo de datos se denomina
también stream. Hay un flujo de entrada (input stream) que
manda los datos desde el exterior (normalmente el teclado)
del ordenador, y un flujo de salida (output stream) que dirige
los datos hacia los dispositivos de salida (la pantalla o un
archivo).
5. Creación, lectura y escritura de flujo
• El proceso para leer o escribir datos consta de
tres pasos
• Abrir el flujo de datos
• Mientras exista más información (leer o
escribir ) los datos
• Cerrar el flujo de datos
6. Creación, lectura y escritura de flujo
Creación
Se describen mediante clases que forman jerarquías según
sea el tipo de dato char unicode de 16 bits o byte de 8 bits
La característica de internacionalización del lenguaje Java
es la razón por la que existe una jerarquía separada de
clases para la lectura y escritura de caracteres.
Todas estas clases se encuentran en el paquete java.io, por
lo que al principio del código fuente tendremos que escribir
la sentencia
import java.io.*;
8. Creación, lectura y escritura de flujo
Lectura
Las clases Reader e InputStream son similares aunque
se refieren a distintos tipos de datos, lo mismo ocurre
con Writer y OutputSream.
Por ejemplo, Reader proporciona tres métodos para
leer un carácter
métodos similares para leer un byte o un array de
bytes.
int read()
int read(byte buf[])
int read(byte buf[], int offset, int len)
.
9. Creación, lectura y escritura de flujo
Escritura
La clase Writer proporciona tres métodos para escribir
un carácter char o un array de caracteres
int write(int c)
int write(char buf[])
int write(char buf[], int offset, int len)
La clase OutputStream proporciona métodos similares
int write(int c)
int write(byte buf[])
int write(byte buf[], int offset, int len)
10. Archivos, directorios y rutas
Archivos Directorios Rutas
Conjunto de datos
de largo variable
identificado con un
nombre. Un
nombre de archivo
suele tener dos
partes separadas
por un punto. La
primera parte alude
a su propósito; la
segunda, llamada
extensión,
Es un contenedor
virtual en el que se
almacenan una
agrupación de
archivos de datos y
otros subdirectorios,
atendiendo a su
contenido, a su
propósito o a
cualquier criterio
que decida el
usuario.
Señala la
localización exacta
de un archivo o
directorio mediante
una cadena de
caracteres concreta.
Ésta puede ser de
diversas formas
dependiendo del
sistema operativo y
del sistema de
archivos en
cuestión
11. Creacion, eliminacion y renombre de
archivos
• Desde un punto de vista de
lectura y escritura un archivo se
trata de una secuencia continua
de datos, ya sean bytes o
caracteres, en una forma básica
de utilizar un archivo para la
entrada y salida de datos como el
ejemplo siguiente:
• Forma básica de utilizar un
archivo para entrada y
salida de datos
12. Serializacion de objetos
La serialización de un objeto consiste en
obtener una secuencia de bytes que
represente el estado de dicho objeto. Esta
secuencia puede utilizarse de varias maneras
(puede enviarse a través de la red, guardarse
en un fichero para su uso posterior, utilizarse
para recomponer el objeto original, etc.).
13. Serializacion de objetos
Estado de un objeto
public class
MiFecha
{
protected int n;
protected Date fecha;
protected transient long s;
. . .
}
En este ejemplo, los atributos n y fecha serán incluídos en la
secuencia de bytes resultante de serializar un objeto de clase MiFecha. El
atributo s noserá incluído, por tener el modificador transient.
14. Serializacion de objetos
Objetos serializables
• es un objeto que se puede
convertir en una secuencia de
bytes. Para que un objeto sea
serializable, debe implementar
la interfaz java.io.Serializable).
Objetos tan comunes como
String, Vector o ArrayList
implementan Serializable, de
modo que pueden ser
serializados y reconstruídos
más tarde.
Almacenamiento de objetos
Es posible utilizar los
mecanismos deserialización
disponibles para serializar
un objeto guardándolo en
un fichero y para realizar el
proceso inverso,
recuperándolo desde el
fichero.
15. Armando estructura de almacenamiento a
partir de estructura de almacenamiento
Los algoritmos requieren una presentacion apropiada de los datos para
lograr ser eficientes. Esta representación junto con las operaciones
permitidas se llama estructura de datos
Matriz (array)
Estructura de
datos que conta
de un numero
fijo de elementos
del mismo tipo.
Vectores,
matrices
unidimensionales
Pila Cola
permite acceder al
elemento mas antiguo
Array
se definen y utilzan con el
operador de indexacion
n programación, una matriz
o vector (llamados en
inglés arrays) es una zona
de almacenamiento
continuo, que contiene una
serie de elementos del
mismo tipo, los elementos
de la matriz
, LIFO(Last in
Fisrt Out)
estructura de
datos en el cual
el acceso
esta limitado al
elemento mas
recientemente
insertado