Zusammenfassung der Ressource
Manejo basico de archivos en java
- Concepto de Archivos
- Los programas usan variables para almacenar información: los datos
de+entrada, Los resultados calculados y valores intermedios generados a
lo largo del cálculo. lo habitual es organizar esa información en uno o
varios ficheros almacenados en algún soporte de almacenamiento
persistente.
- Archivos desde el bajo nivel
- Desde el punto de vista de más bajo nivel, podemos definir un archivo
(o fichero) como: Un conjunto de bits almacenados en un dispositivo, y
accesible a través de un camino de acceso (pathname) que lo identifica.
- el criterio del conenitdo
- cuando manipulamos archivos, distinguiremos dos clases
de archivos dependiendo del tipo de datos que contienen:
Los archivos de caracteres (o de texto) . Los archivos de
bytes (o binarios) Un fichero de texto
es aquél formado exclusivamente por caracteres y
que, por tanto, puede crearse y visualizarse usando
un editor. Las operaciones de lectura y escritura trabajarán
con caracteres.
- Criterio de modo de acceso
- Existe dos modos basicos de acceso a la informacion
contenida en una archivo : SECUENCIA y ACCESO
DIRECTO, en el modo secuencia la informacion del
archivo es una secuencias de bytes de manera que
para acceder al byte se debe haber accedido al
anterior i-1.
- El modo de acceso directo nos permite acceder directamente a
la informacion del byte i-esimo.
- Los Archivos desde Java
- los distintos tipos de ficheros se diferencian por las clases que
usaremos para representarlos y manipularlos. su uso es algo
mas complejo que las clases de ACM, ya que su diseño se ha
realizado pensando en un uso industrial. Las clases se usan
en el tratamiento de ficheros estan ubicadas en el paquete
JAVA.IO por lo que deben ser importadas.
- tratamiento de errores
- las excepciones
- son un mecanismo que permite a los
metodos indicar que algo " anomalo"
ha sucedido que impide su correcto
funcionamiento dse manera que
uqien los ha invocado puede
detectar la situacion erronea.
Muchas de las excepciones que
exiten en java es divir por 0, son
excepciones en tiempo de ejecucion
y no obliga a que el programador las
trate explicitamnete. las
denomindas excepciones
comprobadas que obligan al
programador que dentro del codigo
de un metodo invoca una
instruccion que puede lanzala a
declarar en la cabecera del metodo.
- Tratamiento simplificado de excepciones
- la idea intuitiva de esta construccion es: intenta ejecuta
esas instrucciones en caso de producirse un error en el
tratamiento de los ficheros, atrapa ese error y ejecuta el
codigo de correccion.
- Lectura de ficheros secuenciales de texto
- Contar aparticiones de diversas letras
- leeremos cada uno de los caracteres
hasta llegar al ultimo. si los
caracteres se consideran
incrementar el contador asociad a
ese caracter. definimos las
constantes del fichero.
- Sobre nombres de
archivos, caminos
de acceso y demas
- A simple vista parece una tonteria pero es una de las
cosas que mas complica el codigo al trabajar sobre
los archivos , el motivo es que cada sistema
operativo usa convenciones diferentes para
referirse a un fichero.
- Escritura de ficheros secuenciales de texto
- La estrategia en este caso es: pedir una
cadena al usuario, recorrerla de atras
hacia adelante e ir escribiendo en el
fichero, los caracteres que vamos
encontrando y al final, cerrar el fichero.
- El concepto de buffering
- los buffers te dan un lugar en el que dejar
temporalmente las cosas hasta que esta lleno. cualquier
operacion que implique acceder a la memoria externa
es muy costosa por lo que es intentar reducir al maximo
las operaciones de lectura/escritura que realizamos.
- crear un Howler a partir de un texto
- no es mas que un correo que chilla, en
internet chilla al escribir en masyuscula, lo
que se hace es un programa tal que el texto
dado de un mail, lo "howlerice" y lo convierta
en mayusculas.
- El problema de los saltos en linea
- otro de los problemas al utilizar ficheros es que
estos utilizan diferentes caracteres para indicar el
final de una linea. un fin puede estar indicado por :
el caracter line-feed("\n"), el caracter carige
return("\r").el metodo de linea final es usando la
convencion del sistema operativo de la maquina.
- Manipulacion de datos a bajo nivel
- Tamaños de los tipos
primitivos en java
- una de las ventajas en java es la
representancio de los datos ya que no
dependen ni de la arquitectura de la
maquina, ni de su sistema operativo. por eso ,
lo que diremos funcionara en cualquier
maquina y sistema operativo.
- ¿como recuperar el
evento a partir de
un array de bytes?
- b & 0xFF
- que es hacer un AND con un numero que
solamente tiene 1s en los ocho bytes
menos significativos. Asi el resultado
tiene todo ceros excepto en su byte menos
significativo, que tiene los bits como b.
- B<<8
- esta operacion desplaza hacia la derecha 8 bits
el byte b. como antes de hacer esa operacion
java convierte el byte en int y los bytes en
signos.
- Archivos binarios de acceso directo
- Los archivos de acceso directo estan presentados
por la clase java java.io.RandomAccessFile que
permite: Abrir un archivo en el que se pueda
solamente leer, como tanto leer como escribir. la
colocacion del ectura7escritura en el byte que
ocupa la posicion pos del archivo.
- Uso tipico de archivos binarios de acceso directo
- las posibiliades de mezclar operaciones de escritura con
operaciones de lectura , acceder a una posicion concreta del
archivo hacen el uso principal del acceso directo se implemente
algo muy parecido a los arrays, pero en memoria secundaria
- concepto de registro
- si queremos guardar un
archivo de acceso directo los
datos correspondientes a las
instancias de una clase para
poder acceder directamente a
cada una de las instancias de
una clase para poder acceder
directamente a cada una de las
instancias debemos hacer que
todas tengan igual longitud.
- Ordenacion de archivos: el algoritmo MergeSort
- es un procemiento muy habitual a realizar sobre
archivos es ordenarlos.Aunque para el caso de los
archivos de acceso directo podriamos aplicar los que ya
conocemos para ordenar vectores. El algoritmo
MergeSort permite ordenar un archivo , solamente
realizando lecturas y escrituras secuencias, por lo que es
muy eficiente en el uso de los archivos.
- Idea basica del algoritmo
- la idea detras del algoritmo es muy simple: ir
fusionando las partes ordenadas que contien el
fichero, hasta que todo el esta en una unica parte.