Avatar billede mickni33 Nybegynder
08. marts 2004 - 15:41 Der er 10 kommentarer og
1 løsning

objekt array til fil

hvordan skriver man et objekt array ned på en textfil så det er muligt at hente den samme data ind igen..... som en slags database
Avatar billede arne_v Ekspert
08. marts 2004 - 15:48 #1
Du kan f.eks. bruge ObjectOutputStream/ObjectInputStream til at gøre det med.

Jeg vil til de fleste formål anbefale dig at gemme som XML i.s.f. binære
objekter.
Avatar billede mickni33 Nybegynder
08. marts 2004 - 15:51 #2
Kan du vise lidt syntaks kode :-)
Avatar billede arne_v Ekspert
08. marts 2004 - 15:58 #3
public static void binser(Object[] oa, String filename) {
        try {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename));
            oos.writeObject(oa);
            oos.close();
        } catch (IOException e) {
        }
    }
Avatar billede mickni33 Nybegynder
08. marts 2004 - 16:01 #4
og henter ind igen
Avatar billede arne_v Ekspert
08. marts 2004 - 16:08 #5
public static Object[] bindeser(String filename) {
        Object[] oa;
        try {
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filename));
            oa = (Object[])ois.readObject();
            ois.close();
        } catch (ClassNotFoundException e) {
            oa = null;
        } catch (IOException e) {
            oa = null;
        }
        return oa;
    }
Avatar billede arne_v Ekspert
08. marts 2004 - 16:13 #6
Java 1.4 har 2 klasser java.beans.XMLEncoder og java.beans.XMLDecoder
som kan serialisere til XML.
Avatar billede arne_v Ekspert
08. marts 2004 - 16:19 #7
public static void xmlser(Object[] oa, String filename) {
        try {
            XMLEncoder xe = new XMLEncoder(new FileOutputStream(filename));
            xe.writeObject(oa);
            xe.close();
        } catch (IOException e) {
        }
    }
    public static Object[] xmldeser(String filename) {
        Object[] oa;
        try {
            XMLDecoder xd = new XMLDecoder(new FileInputStream(filename));
            oa = (Object[])xd.readObject();
            xd.close();
        } catch (IOException e) {
            oa = null;
        }
        return oa;
    }
Avatar billede arne_v Ekspert
08. marts 2004 - 16:19 #8
Og et svar
Avatar billede jakoba Nybegynder
08. marts 2004 - 17:14 #9
Vile det ikke kræve at man er ret påpasselig med hvilke objekter man vælger at gemme på den måde ?
som fx:
    statiske variable i objektet
    arrays og andre objektreferencer i objektet

mvh JakobA
Avatar billede arne_v Ekspert
08. marts 2004 - 19:18 #10
binær serializer tager alle instans variable undtagen dem markeret transient

XML serializer tager kun variable som følger bean specifikationen

begge tager objekter inden i objekter

ingen af dem tager statiske variable
Avatar billede mickni33 Nybegynder
09. marts 2004 - 10:13 #11
jajaja arne :-)
så meget behøver du ikke at gøre ud af det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester