1213 threads [5] accés a fitxers
TRANSCRIPT
ACCÉS A LA INFORMACIÓ Tipus d’accessos a dades
Accés aleatori (“random”): Igual que en el cas de la memòria RAM (Random Acces Memory), els arxius d’accés aleatori permeten accedir a les dades de forma no seqüencial – desordenada -. Accés seqüencial (fluxe o “streams”): Les dades es llegeixen seqüencialment – des del principi de l’arxiu fins al final. Concatenació (canyeries o “pipes”): De vegades, resulta útil definir connexions entre programes que funcionen simultàniament dins d’una mateixa màquina.
ACCÉS A LA INFORMACIÓ Seqüencial vs. aleatori
Accés seqüencial: Llegeix un arxiu començant des del principi i llegeix els continguts sences – un byte per cop – fins que assoleix el final. Accés aleatori: Permet accedir a localitzacions específiques en un arxiu I canviar unes determinades localitzacions.
ACCÉS A LA INFORMACIÓ Mètodes d’escriptura
§ Els arxius d’accés seqüencial són extremadament útils per la majoria de les aplicacions; ara bé, de vegades són necessaris arxius d’accés aleatori que permetin accedir als seus continguts en forma no seqüencial – o aleatòria - .
§ La classe RandomAccessFile del paquet java.io, implementa un arxiu d’accés aleatori. Es pot utilitzar tant per lectura com per l’escriptura de bytes.
ACCÉS A LA INFORMACIÓ Mètodes d’escriptura
§ Tot objecte instància de RandomAccessFile suporta el concepte de punter que indica la posició actual dins de l’arxiu.
§ La metodologia del punter es basa que comença en 0 i es mesura en bytes.
§ R a n d o m A c c e s s F i l e proporciona comandes per operar sobre el punter.
ACCÉS A FITXERS PER POSICIÓ Creació d’un fitxer d’accés aleatori
L’argument mode determina si es té accés de solament lectura (r) o de lectura/escriptura (r/w). Per exemple, es pot obrir un fitxer d’una base de dades per actualitzar-la:
RandomAccessFile elMeuArxiu = new RandomAccessFile( "/tmp/res.dbf","rw" );
ACCÉS A FITXERS PER POSICIÓ
Dels mètodes que es poden utilitzar amb els punters dels fitxers, trobem:
Seek ()è Permet moure el punter a un byte n específic (comptat des del
començament del fitxer). getFilePointer () è Permet aconseguir la posició actual del punter del fitxer. length () è Permet determinar el número de bytes que hi ha en un fitxer.
f.seek (n); long fileLength = f.length ();
Long n= f.getFilePointer(); // tipus “long” perquè els fitxer poden ser molt grans