Diferència entre revisions de la pàgina «M3 - Programació»

De wikiserver
Dreceres ràpides: navegació, cerca
(Fitxers orientat a byte)
(Fitxers orientat a byte)
Línia 98: Línia 98:
 
|writeShort(short s)||2
 
|writeShort(short s)||2
 
|}
 
|}
 +
 +
Exemple d'escriptura de 20 enters:
 +
<pre>
 +
    public class EscriureEntersBinari {
 +
 +
      public static void main(String[] args) throws IOException {
 +
 +
        EscriureEntersBinari programa = new EscriureEntersBinari();
 +
        programa.inici();
 +
    }
 +
 +
    public void inici() throws FileNotFoundException, IOException {
 +
 +
      File f = new File("Enters.bin");
 +
      RandomAccessFile raf = new RandomAccessFile(f, "rw");
 +
      int valor = 1;
 +
      for (int i = 0; i < 20; i++) {
 +
          raf.writeInt(valor);
 +
          valor = valor * 2;
 +
      }
 +
      System.out.println("Fitxer escrit satisfactòriament.");
 +
      raf.close();
 +
    }
 +
}
 +
</pre>
 +
 +
</pre>

Revisió del 20:14, 3 feb 2018

UF1: Programació Estructurada

Activitats

UF3: Fonament de gestió de fitxers

Continguts

Fitxers orientat a byte

Accés següèncial

Les dades s’emmagatzemen com una seqüència de valors, i per tant, l’esquema general que s'aplica en fitxers orientats a caràcter també es pot aplicar a aquest altre tipus.

Representació de les dades en format binari.

Tipus Paura clau Java Mide (bytes)
caràcter char 2
byte byte 1
enter curt short 2
enter simple int 4
enter llarg long 8
real de simple precisió float 4
real de doble precisió doble 8

Inicialització

    import java.io.File;
    import java.io.RandomAccessFile;    // s’usa tant per llegir com per escriure dades
    RandomAccessFile raf = new RandomAccessFile(File ruta, String mode);  
                                             // File ruta per especificar la ruta del fitxer
                                             // String mode per especificar el mode de treball a l'hora de processar el fitxer

Dels modes de treball possibles el dos més utilitzats són:

  • r: mode lectura. Errors si el fitxer no existeix o si s'invoca a mètodes d'escriptura.
  • rw: mode escriptura-lectura. Si el fitxer no existeix, es crearà un de nou buit. Si existeix, no s’esborren les seves dades.

Escriptura de dades

L’única manera de generar fitxers orientats a byte que puguin ser llegits correctament és mitjançant codi d’un programa.

Cada cop que es fa una operació de lectura o escriptura, l’apuntador es desplaça automàticament el mateix nombre de bytes amb què s’ha operat.

Mètodes disponibles per escriure dades:

Mètode Bytes escrits
writeBoolean(boolean b) 1
writeByte (byte v) 1
writeChar(char c) 2
writeDouble(double d) 8
writeFloat(float f) 4
writeInt(int i) 4
writeLong(long l) 8
writeShort(short s) 2

Exemple d'escriptura de 20 enters:

    public class EscriureEntersBinari {

      public static void main(String[] args) throws IOException {

        EscriureEntersBinari programa = new EscriureEntersBinari();
        programa.inici();
     }

     public void inici() throws FileNotFoundException, IOException {

       File f = new File("Enters.bin");
       RandomAccessFile raf = new RandomAccessFile(f, "rw");
       int valor = 1;
       for (int i = 0; i < 20; i++) {
          raf.writeInt(valor);
          valor = valor * 2;
       }
       System.out.println("Fitxer escrit satisfactòriament.");
       raf.close();
     }
}

</pre>