Programmeren in Java/In- & uitvoer: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
→Naar een gebufferd bestand: Bestanden behandelen |
→Bestanden behandelen: objecten |
||
Regel 390:
}}
:'''Uitdrukkingen'''
* File bestand = new File("pad");
Regel 456:
}}
=Objecten=
De interface Serializable is een marker interface; die bevat immers geen methods, maar heeft als doel aan te duiden dat het object kan weggeschreven en gelezen kan worden door middel van een stream.
:'''Uitdrukkingen'''
* stroom.writeObject(object)
:'''Voorbeeld'''
{{Code|
| Taal=Java
| Titel=objectStroom.java
| Code=<source lang=java>import java.io.*;
public class ObjectStroom {
public static void main(String[] args) {
try {
FileOutputStream fileO = new FileOutputStream("vrienden.dat");
ObjectOutputStream stroomO = new ObjectOutputStream(fileO);
Vriend tom = new Vriend("Tom",12);
Vriend jan = new Vriend("Jan",15);
Vriend pol = new Vriend("Pol",45);
stroomO.writeObject(tom);
stroomO.writeObject(jan);
stroomO.writeObject(pol);
stroomO.close();
FileInputStream fileI = new FileInputStream("vrienden.dat");
ObjectInputStream stroomI = new ObjectInputStream(fileI);
boolean eof = false;
while (!eof) {
Vriend eenVriend = (Vriend) stroomI.readObject();
if (eenVriend == null) eof = true;
else System.out.println(eenVriend.getInfo());
}
stroomI.close();
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}</source>
}}
Bovenstaande code schrijft onderstaand type object weg.
{{Code|
| Taal=Java
| Titel=Vriend.java
| Code=<source lang=java>import java.io.*;
public class Vriend implements Serializable {
private String naam;
private int leeftijd;
public Vriend(String naam,int leeftijd) {
this.naam=naam;
this.leeftijd=leeftijd;
}
public String getInfo() {
return naam + " " + leeftijd;
}
public double getLeeftijd() {
return leeftijd;
}
}</source>
}}
Je kan met transient voorkomen dat een bepaalde variabele van een object weggeschreven wordt, bvb. omdat je het niet veilig vindt om deze gevoelige informatie in een bestand weg te schrijven, bvb. [[w:Wet bescherming persoonsgegevens|privé-data]] als paswoord, inkomen, ...: private transient double loon;
|