SlideShare a Scribd company logo
1 of 8
Download to read offline
PROGRAMACIÓ	
  
 CONCURRENT	
  


      5	
   Accés	
  a	
  fitxers	
  
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.

§    RandomAccessFile
      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	
  
ACCÉS	
  A	
  FITXERS	
  PER	
  POSICIÓ	
  
                  Exemple	
  10	
  

•  Què fa aquest programa?

•  Modifica la crida al punter perquè,
   enlloc de la segona línia, vull que se’m
   mostri la segona i la tercera?

•  Fes el mateix perquè es mostrin totes.
                         	
  

More Related Content

More from Oriol Torres

Presentación pública Treat or Treat
Presentación pública Treat or TreatPresentación pública Treat or Treat
Presentación pública Treat or TreatOriol Torres
 
1213 Threads [4] Sincronització
1213 Threads [4] Sincronització1213 Threads [4] Sincronització
1213 Threads [4] SincronitzacióOriol Torres
 
1213 Threads [3] Semafors
1213 Threads [3] Semafors1213 Threads [3] Semafors
1213 Threads [3] SemaforsOriol Torres
 
1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrentOriol Torres
 
1213 serveis [5] Correu electronic i pagines web
1213 serveis [5] Correu electronic i pagines web1213 serveis [5] Correu electronic i pagines web
1213 serveis [5] Correu electronic i pagines webOriol Torres
 
1213 Sockets [4] Servidors i fils
1213 Sockets [4] Servidors i fils1213 Sockets [4] Servidors i fils
1213 Sockets [4] Servidors i filsOriol Torres
 
1213 Sockets [1] Introducció
1213 Sockets [1] Introducció1213 Sockets [1] Introducció
1213 Sockets [1] IntroduccióOriol Torres
 
1213 Sockets [2] Arquitectura client - servidor
1213 Sockets [2] Arquitectura client - servidor1213 Sockets [2] Arquitectura client - servidor
1213 Sockets [2] Arquitectura client - servidorOriol Torres
 
1213 Sockets [3] Programació
1213 Sockets [3] Programació1213 Sockets [3] Programació
1213 Sockets [3] ProgramacióOriol Torres
 
1213 Threads [1] Programació concurrent, processos i fils
1213 Threads [1] Programació concurrent, processos i fils1213 Threads [1] Programació concurrent, processos i fils
1213 Threads [1] Programació concurrent, processos i filsOriol Torres
 
Appetite apps stats market
Appetite apps stats marketAppetite apps stats market
Appetite apps stats marketOriol Torres
 

More from Oriol Torres (11)

Presentación pública Treat or Treat
Presentación pública Treat or TreatPresentación pública Treat or Treat
Presentación pública Treat or Treat
 
1213 Threads [4] Sincronització
1213 Threads [4] Sincronització1213 Threads [4] Sincronització
1213 Threads [4] Sincronització
 
1213 Threads [3] Semafors
1213 Threads [3] Semafors1213 Threads [3] Semafors
1213 Threads [3] Semafors
 
1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent
 
1213 serveis [5] Correu electronic i pagines web
1213 serveis [5] Correu electronic i pagines web1213 serveis [5] Correu electronic i pagines web
1213 serveis [5] Correu electronic i pagines web
 
1213 Sockets [4] Servidors i fils
1213 Sockets [4] Servidors i fils1213 Sockets [4] Servidors i fils
1213 Sockets [4] Servidors i fils
 
1213 Sockets [1] Introducció
1213 Sockets [1] Introducció1213 Sockets [1] Introducció
1213 Sockets [1] Introducció
 
1213 Sockets [2] Arquitectura client - servidor
1213 Sockets [2] Arquitectura client - servidor1213 Sockets [2] Arquitectura client - servidor
1213 Sockets [2] Arquitectura client - servidor
 
1213 Sockets [3] Programació
1213 Sockets [3] Programació1213 Sockets [3] Programació
1213 Sockets [3] Programació
 
1213 Threads [1] Programació concurrent, processos i fils
1213 Threads [1] Programació concurrent, processos i fils1213 Threads [1] Programació concurrent, processos i fils
1213 Threads [1] Programació concurrent, processos i fils
 
Appetite apps stats market
Appetite apps stats marketAppetite apps stats market
Appetite apps stats market
 

1213 Threads [5] Accés a fitxers

  • 1. PROGRAMACIÓ   CONCURRENT   5   Accés  a  fitxers  
  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. 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. §  RandomAccessFile proporciona comandes per operar sobre el punter.
  • 6. 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" );
  • 7. 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  
  • 8. ACCÉS  A  FITXERS  PER  POSICIÓ   Exemple  10   •  Què fa aquest programa? •  Modifica la crida al punter perquè, enlloc de la segona línia, vull que se’m mostri la segona i la tercera? •  Fes el mateix perquè es mostrin totes.