20. september 2005 - 10:18
Der er
8 kommentarer og 1 løsning
Lave filer i java.
Jeg er igang med at lave et lille program i java til at holde styr på mine film. Programmet skal både indeholde informaioner om mine dvd film og mine vhs film. Disse informationer bliver gemt i en arraylist, her ment at informationerne om mine dvd film bliver gemt i en arraylist for sig og mine vhs film bliver gemt i en arraylist for sig. Disse arraylists vil jeg gerne kunne gemme i en fil. Nogen der kan give mig en smule hjælp til hvordan klassen som skal gemme disse informationer, skal se ud?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
20. september 2005 - 11:17
#1
20. september 2005 - 11:20
#2
Husk blot at de klasser der skal gemmes, skal implementere Serializable ... public class MyVideo implements Serializable { //.... }
20. september 2005 - 11:21
#3
Et alternativ, til at serialisere, er at gemme det i xml. Dog bliver dette lidt mere komplekst.
20. september 2005 - 12:57
#4
kun hvis man håndkoder XML ikke hvis man bruger XmlEncode/XmlDecode bemærk at serialisering og de 2 klasser har en lidt forskellig semantik da de 2 klasser bruger bean konventionen eksempel: import java.util.*; import java.beans.*; import java.io.*; public class SerTest implements Serializable { public int a; private int b; private transient int c; private HashMap hm1; private HashMap hm2; public SerTest() { a = 0; b = 0; c = 0; hm1 = new HashMap(); hm2 = new HashMap(); } public SerTest(int a, int b, int c, String v) { this.a = a; this.b = b; this.c = c; hm1 = new HashMap(); hm2 = new HashMap(); hm1.put("k1", v); hm2.put("k2", v); } public int getB() { return b; } public int getC() { return c; } public HashMap getHm1() { return hm1; } public void setB(int b) { this.b = b; } public void setC(int c) { this.c = c; } public void setHm1(HashMap hm1) { this.hm1 = hm1; } public String toString() { return (a + " " + b + " " + c + " " + hm1 + " " + hm2); } public static void main(String[] args) throws Exception { SerTest st1 = new SerTest(1, 2, 3, "V"); XMLEncoder xe = new XMLEncoder(new FileOutputStream("C:\\xml.dat")); xe.writeObject(st1); xe.close(); XMLDecoder xd = new XMLDecoder(new FileInputStream("C:\\xml.dat")); SerTest st2 = (SerTest)xd.readObject(); System.out.println(st1 + " -> " + st2); ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\\bin.dat")); oos.writeObject(st1); oos.close(); ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:\\bin.dat")); SerTest st3 = (SerTest)ois.readObject(); System.out.println(st1 + " -> " + st3); } }
20. september 2005 - 12:58
#5
(kør det og studer resultatet)
20. september 2005 - 14:10
#6
Ja, det var da egentlig nemt. (nu får jeg heller ikke mails på spg jeg deltager i!?)
20. september 2005 - 17:10
#7
arne_v, jeg siger mange tak. Hvis du kan lægge et svar så du kan få dine points. :-)
20. september 2005 - 17:38
#8
ok
20. september 2005 - 17:39
#9
(mikkelbm's link har også kode til serialisering)
Kurser inden for grundlæggende programmering