bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


java_lectura_escriptura

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
Ultima revisió Ambdós costats nova versio
java_lectura_escriptura [2022/11/24 15:41]
albert_palacios_jimenez
java_lectura_escriptura [2022/11/24 17:00]
albert_palacios_jimenez
Línia 2: Línia 2:
  
 {{tag> #FpInfor #Dam #DamMp06 #DamMp06Uf1 #DamMp06Uf01}} {{tag> #FpInfor #Dam #DamMp06 #DamMp06Uf1 #DamMp06Uf01}}
- 
  
 ---- ----
Línia 11: Línia 10:
  
 - De text: guarden dades en format text (caràcters llegibles) - De text: guarden dades en format text (caràcters llegibles)
 +
 - Binaris: guarden dades en format binari (0s i 1s) - Binaris: guarden dades en format binari (0s i 1s)
  
 Per llegir arxius de text fem servir dues classes: Per llegir arxius de text fem servir dues classes:
  
-- **File**: representa una ruta al sistema de fitxers+- **File**: representa una ruta al sistema de fitxers, i permet
  
   * Manipular la jerarquia d’arxius (crear arxius i carpetes, borrar, renombrar …)   * Manipular la jerarquia d’arxius (crear arxius i carpetes, borrar, renombrar …)
Línia 85: Línia 85:
 } }
 </code> </code>
 +
 +
 +==== DataOutputStream i DataInputStream ====
 +
 +Per guardar dades primitives de manera ordenada en arxius, hi ha les classes "**DataOutputStream**" i "**DataInputStream**". Les dades, s'han de llegir en el mateix ordre que s'han guardat.
 +
 +Exemple de guardar dades primitives amb "DataOutputStream":
 +
 +<code java>
 +File file = new File("outin.bin");
 +      
 +FileOutputStream fileOutputStream = null;
 +DataOutputStream dataOutputStream = null;
 +try {
 +    fileOutputStream=new FileOutputStream(file);
 +    dataOutputStream=new DataOutputStream(fileOutputStream);
 +    dataOutputStream.writeInt(50);
 +    dataOutputStream.writeDouble(400.25);
 +    dataOutputStream.writeUTF(“Hola”);
 +    dataOutputStream.flush();
 +} catch (IOException e) {
 +    e.printStackTrace();
 +} finally {
 +    try {
 +        if(fileOutputStream!=null){ fileOutputStream.close(); }
 +        if(dataOutputStream!=null){ dataOutputStream.close(); }
 +    } catch (Exception e) {
 +        e.printStackTrace();
 +    }
 +}
 +</code>
 +
 +Exemple de llegir dades primitives amb "DataInputStream":
 +(Es llegeixen en l'ordre que s'han escrit)
 +
 +<code java>
 +FileInputStream fileInputStream = null;
 +DataInputStream dataInputStream = null;
 +try {
 +   fileInputStream = new FileInputStream(file);
 +   dataInputStream = new DataInputStream(fileInputStream);
 +   System.out.println(dataInputStream.readInt());
 +   System.out.println(dataInputStream.readDouble());
 +   System.out.println(dataInputStream.readUTF());
 +} catch (IOException e) {
 +   e.printStackTrace();
 +}finally {
 +   try {
 +     if(fileInputStream!=null){ fileInputStream.close(); }
 +     if(dataInputStream!=null){ dataInputStream.close(); }
 +   } catch (Exception e) {
 +      e.printStackTrace();
 +   }
 +}
 +</code>
 +
 +Cal tenir en compte que els objectes no són dades primitives i per tant no es poden guardar i llegir amb els mètodes anteriors.
 +
  
 ==== Serialitzar ==== ==== Serialitzar ====
Línia 183: Línia 241:
  
 **Nota**: Cal tenir en compte, que els objectes serialitzats només es poden llegir en la mateixa versió de Java. **Nota**: Cal tenir en compte, que els objectes serialitzats només es poden llegir en la mateixa versió de Java.
- 
-==== DataOutputStream i DataInputStream ==== 
- 
-Per guardar dades primitives de manera ordenada en arxius, hi ha les classes "**DataOutputStream**" i "**DataInputStream**". Les dades, s'han de llegir en el mateix ordre que s'han guardat. 
- 
-Exemple de guardar dades primitives amb "DataOutputStream": 
- 
-<code java> 
-File file = new File("outin.bin"); 
-       
-FileOutputStream fileOutputStream = null; 
-DataOutputStream dataOutputStream = null; 
-try { 
-    fileOutputStream=new FileOutputStream(file); 
-    dataOutputStream=new DataOutputStream(fileOutputStream); 
-    dataOutputStream.writeInt(50); 
-    dataOutputStream.writeDouble(400.25); 
-    dataOutputStream.writeUTF(“Hola”); 
-    dataOutputStream.flush(); 
-} catch (IOException e) { 
-    e.printStackTrace(); 
-} finally { 
-    try { 
-        if(fileOutputStream!=null){ fileOutputStream.close(); } 
-        if(dataOutputStream!=null){ dataOutputStream.close(); } 
-    } catch (Exception e) { 
-        e.printStackTrace(); 
-    } 
-} 
-</code> 
- 
-Exemple de llegir dades primitives amb "DataInputStream": 
-(Es llegeixen en l'ordre que s'han escrit) 
- 
-<code java> 
-FileInputStream fileInputStream = null; 
-DataInputStream dataInputStream = null; 
-try { 
-   fileInputStream = new FileInputStream(file); 
-   dataInputStream = new DataInputStream(fileInputStream); 
-   System.out.println(dataInputStream.readInt()); 
-   System.out.println(dataInputStream.readDouble()); 
-   System.out.println(dataInputStream.readUTF()); 
-} catch (IOException e) { 
-   e.printStackTrace(); 
-}finally { 
-   try { 
-     if(fileInputStream!=null){ fileInputStream.close(); } 
-     if(dataInputStream!=null){ dataInputStream.close(); } 
-   } catch (Exception e) { 
-      e.printStackTrace(); 
-   } 
-} 
-</code> 
- 
-Cal tenir en compte que els objectes no són dades primitives i per tant no es poden guardar i llegir amb els mètodes anteriors. 
  
 ==== Escriptura i lectura d'arxius amb dades de List<String> ==== ==== Escriptura i lectura d'arxius amb dades de List<String> ====
Línia 401: Línia 403:
  
 Igualment, com amb les dades primitives, es poden guardar objectes de manera ordenada: Igualment, com amb les dades primitives, es poden guardar objectes de manera ordenada:
 +
 +Objecte serialitzable d'exemple. 
 +
 +Objecte.java
 +<code java>
 +import java.io.Serializable;
 +
 +public class Objecte implements Serializable {
 +    String nom;
 +    String utilitat;
 +
 +    Objecte (String nom, String utilitat) {
 +        this.nom = nom;
 +        this.utilitat = utilitat;
 +    }
 +
 +    @Override
 +    public String toString () {
 +        return "Nom: " + this.nom + ", Utilitat: " + this.utilitat;
 +    }
 +}
 +
 +</code>
  
 <code java> <code java>
java_lectura_escriptura.txt · Darrera modificació: 2022/11/24 17:02 per albert_palacios_jimenez