Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
java_lectura_escriptura [2022/11/24 15:46] albert_palacios_jimenez |
java_lectura_escriptura [2022/11/24 17:02] (actual) albert_palacios_jimenez |
||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| ====== Lectura i escriptura d' | ====== Lectura i escriptura d' | ||
| - | {{tag> #FpInfor #Dam #DamMp06 #DamMp06Uf1 # | + | {{tag> #FpInfor #Dam #DamMp06 #DamMp06Uf1 # |
| ---- | ---- | ||
| Línia 10: | 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 86: | ||
| </ | </ | ||
| - | ==== Serialitzar ==== | ||
| + | ==== Escriptura i lectura d' | ||
| - | Serialitzar és transformar un objecte en una cadena | + | Per escriure arxius per guardar-hi les dades d'una llista |
| - | Serialitzar permet guardar objectes JAVA en arxius o transmetre’ls a través de la xarxa. | ||
| - | |||
| - | Per fer que una classe sigui serialitzable en JAVA ha de implementar: | ||
| - | |||
| - | Exemple de guardar un objecte " | ||
| - | |||
| - | StreamEmployee.java | ||
| <code java> | <code java> | ||
| - | import java.io.Serializable; | + | import java.io.IOException; |
| + | import java.nio.charset.Charset; | ||
| + | import java.nio.file.Files; | ||
| + | import java.nio.file.Path; | ||
| + | import java.nio.file.Paths; | ||
| + | import java.util.ArrayList; | ||
| + | import java.util.List; | ||
| - | public class StreamEmployee implements Serializable { | + | // Aquest exemple escriu els continguts |
| + | // d'una List< | ||
| - | private | + | public class EscripturaArxiuList { |
| - | | + | public |
| - | private | + | String |
| - | private int age; | + | String |
| - | | + | |
| - | | + | System.out.println("" |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | } | + | |
| - | } | + | |
| - | </code> | + | try { |
| + | List<String> linies = new ArrayList< | ||
| + | linies.add(" | ||
| + | linies.add(" | ||
| + | linies.add(" | ||
| + | linies.add(" | ||
| + | linies.add(" | ||
| + | linies.add(" | ||
| - | StreamWriteMain.java | + | Path out = Paths.get(filePath); |
| - | <code java> | + | Files.write(out, linies, Charset.defaultCharset()); |
| - | import java.io.FileOutputStream; | + | |
| - | import java.io.ObjectOutputStream; | + | |
| - | import java.io.IOException; | + | |
| - | public class StreamWriteMain { | + | System.out.println(" |
| - | | + | |
| - | | + | |
| - | + | } | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | try { | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | } catch (IOException e) { e.printStackTrace(); | + | |
| - | | + | |
| } | } | ||
| </ | </ | ||
| - | Exemple de com llegir | + | Per llegir |
| - | StreamReadMain.java | ||
| <code java> | <code java> | ||
| - | import java.io.FileInputStream; | ||
| - | import java.io.FileNotFoundException; | ||
| - | import java.io.FileOutputStream; | ||
| - | import java.io.ObjectInputStream; | ||
| - | import java.io.ObjectOutputStream; | ||
| import java.io.IOException; | import java.io.IOException; | ||
| + | import java.nio.charset.StandardCharsets; | ||
| + | import java.nio.file.Files; | ||
| + | import java.nio.file.Paths; | ||
| + | import java.util.List; | ||
| - | public class StreamReadMain { | + | // Aquest exemple llegeix un arxiu de text en una List<String> |
| - | | + | |
| - | | + | public class LecturaArxiuList { |
| - | try { | + | |
| - | is = new FileInputStream("EmployeeObject.ser"); | + | |
| - | ObjectInputStream ois = new ObjectInputStream(is); | + | |
| - | | + | |
| - | ois.close(); | + | System.out.println("" |
| - | is.close(); | + | |
| - | | + | try { |
| - | | + | List< |
| - | e.printStackTrace(); | + | for (int cnt = 0; cnt < linies.size(); cnt = cnt + 1) { |
| - | } catch (IOException e) { e.printStackTrace(); | + | System.out.println(linies.get(cnt)); |
| - | | + | } |
| + | } catch (IOException e) { e.printStackTrace(); | ||
| + | |||
| + | | ||
| } | } | ||
| </ | </ | ||
| - | **Nota**: Cal tenir en compte, que els objectes serialitzats només es poden llegir en la mateixa versió de Java. | ||
| ==== DataOutputStream i DataInputStream ==== | ==== DataOutputStream i DataInputStream ==== | ||
| Línia 239: | Línia 215: | ||
| 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. | 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' | ||
| - | Per escriure arxius per guardar-hi les dades d'una llista de textos, es pot fer amb: | + | ==== Serialitzar ==== |
| - | <code java> | ||
| - | import java.io.IOException; | ||
| - | import java.nio.charset.Charset; | ||
| - | import java.nio.file.Files; | ||
| - | import java.nio.file.Path; | ||
| - | import java.nio.file.Paths; | ||
| - | import java.util.ArrayList; | ||
| - | import java.util.List; | ||
| - | // Aquest exemple escriu els continguts | + | Serialitzar és transformar |
| - | // d'una List< | + | |
| - | public class EscripturaArxiuList { | + | Serialitzar permet guardar objectes JAVA en arxius o transmetre’ls a través de la xarxa. |
| - | public static void main(String args[]) { | + | |
| - | String basePath = System.getProperty(" | + | |
| - | String filePath = basePath + " | + | |
| - | System.out.println("" | + | Per fer que una classe sigui serialitzable en JAVA ha de implementar: |
| - | try { | + | Exemple |
| - | List< | + | |
| - | linies.add(" | + | |
| - | linies.add(" | + | |
| - | linies.add(" | + | |
| - | linies.add(" | + | |
| - | linies.add(" | + | |
| - | linies.add("fam i pandèmies genera xoc i confusió."); | + | |
| - | Path out = Paths.get(filePath); | + | StreamEmployee.java |
| - | Files.write(out, linies, Charset.defaultCharset()); | + | <code java> |
| + | import java.io.Serializable; | ||
| - | System.out.println(" | + | public class StreamEmployee implements Serializable { |
| - | | + | |
| - | } | + | |
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | public void setAge(int age) { this.age = age; } | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| } | } | ||
| + | |||
| </ | </ | ||
| - | Per llegir arxius guardats amb el mètode anterior cap a una List< | + | StreamWriteMain.java |
| <code java> | <code java> | ||
| + | import java.io.FileOutputStream; | ||
| + | import java.io.ObjectOutputStream; | ||
| import java.io.IOException; | import java.io.IOException; | ||
| - | import java.nio.charset.StandardCharsets; | ||
| - | import java.nio.file.Files; | ||
| - | import java.nio.file.Paths; | ||
| - | import java.util.List; | ||
| - | // Aquest exemple llegeix un arxiu de text en una List<String> | + | public class StreamWriteMain { |
| + | | ||
| - | public class LecturaArxiuList { | + | StreamEmployee emp = new StreamEmployee("Pankaj"); |
| - | public static void main(String args[]) { | + | |
| - | String basePath | + | |
| - | String filePath = basePath + " | + | |
| - | | + | |
| + | | ||
| + | | ||
| + | System.out.println(emp); | ||
| + | |||
| + | try { | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | } catch (IOException e) { e.printStackTrace(); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| - | try { | + | Exemple de com llegir un arxiu amb un objecte serialitzat: |
| - | List< | + | |
| - | for (int cnt = 0; cnt < linies.size(); | + | |
| - | System.out.println(linies.get(cnt)); | + | |
| - | } | + | |
| - | } catch (IOException e) { e.printStackTrace(); | + | |
| - | | + | StreamReadMain.java |
| + | <code java> | ||
| + | import java.io.FileInputStream; | ||
| + | import java.io.FileNotFoundException; | ||
| + | import java.io.FileOutputStream; | ||
| + | import java.io.ObjectInputStream; | ||
| + | import java.io.ObjectOutputStream; | ||
| + | import java.io.IOException; | ||
| + | |||
| + | public class StreamReadMain { | ||
| + | | ||
| + | |||
| + | | ||
| + | try { | ||
| + | is = new FileInputStream(" | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | } catch (ClassNotFoundException e) { | ||
| + | | ||
| + | } catch (IOException e) { e.printStackTrace(); | ||
| + | } | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | **Nota**: Cal tenir en compte, que els objectes serialitzats només es poden llegir en la mateixa versió de Java. | ||
| ==== Escriptura i lectura d' | ==== Escriptura i lectura d' | ||