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 fra SoftwareOne
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