Avatar billede dl Nybegynder
17. januar 2006 - 19:55 Der er 8 kommentarer og
1 løsning

Gem LinkedListe som objeck i fil

Jeg skal gemme noget data i en fil.
Dette data jeg skal gemme, er en hel LinkedListe, som skal gemmes som et Object i en fil.

Hvordan gemmer jeg filen, og læser den ind igen ?

jeg har prøvet og se på PrintStream, men er ved at få grå hår af det .

Dennis
Avatar billede simonvalter Praktikant
17. januar 2006 - 20:56 #1
Du har oprettet flere spørgsmål i denne katagori der hører til i Java katagorien.
http://www.eksperten.dk/spm/Programmering/Java/

Jeg tror der er flere der følger med i java katagorien der har mulighed for at hjælpe dig... luk venligst ved at selv ligge et svar og acceptere det og opret i den rette katagori.

Se hvad Java og J2ee er her
http://en.wikipedia.org/wiki/J2EE
http://en.wikipedia.org/wiki/Java_programming_language
Avatar billede arne_v Ekspert
17. januar 2006 - 21:03 #2
serialisering

enten normal binær serialisering eller XML serialisering
Avatar billede arne_v Ekspert
17. januar 2006 - 21:04 #3
og Simon har helt ret - dette er ikke et J2EE spørgsmål

medmindre du vil bruge en entity bean til at gemme med

:-)
Avatar billede arne_v Ekspert
17. januar 2006 - 21:07 #4
wikipedia er vist iøvrigt ikke helt korrekt

"Java EE includes several API specifications, for example JDBC, client-side applets, RPC, CORBA, and defines how to coordinate them."

" One "consensus" is that Java EE is best for multiplatform architectures, whereas .NET should be used for a strictly Microsoft platform (and not to be migrated to for non-Microsoft platform integration)."
Avatar billede dl Nybegynder
18. januar 2006 - 00:23 #5
har set jeres link, og siger mig ikke lige noget .. som jeg kan bruge.
Jeg snakker ikke om entry beam og så vidre, det har jeg ikke lært endnu :P

Min ide var.
at bruge interface: Serializable

og bruge noget

fileoutput st = new bla bla
PrintWriter.WriteObject( Object );
st.close();


og så skal jeg lige bruge en metode til at load den igen.

//dl
Avatar billede arne_v Ekspert
18. januar 2006 - 00:26 #6
jeg har et eksempel med både binær og XML serialisering:

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);
    }
}
Avatar billede simonvalter Praktikant
18. januar 2006 - 00:46 #7
Næ det er altid godt med noget kildekritik når man bruger wikipedia, men langt hen af vejen er det nu fint.

dl> nu var linkene nu hellere ikke så meget for at hjælpe dig med det specifikke problem, men mere for at vise lidt om hvad j2ee er og hvorfor dit spørgsmål var placeret i den forkerte katagori så du vidste det til en anden gang :)
Avatar billede dl Nybegynder
18. januar 2006 - 09:57 #8
min løsning på dette problem. med alle de problemmer dette har.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class FileHandler
{
  public FileHandler()
  {
  }
 
  public void saveObjectToFile(String file, Object o)
  {
    try
    {
      FileOutputStream fop = new FileOutputStream(file);
      ObjectOutputStream oos = new ObjectOutputStream(fop);
      oos.writeObject(o);
      oos.close();
    }
    catch (Exception e)
    {}
  }

  public Object loadObjectFromFile(String file)
  {
    Object temp = null;
    ObjectInputStream ois = null;
    try
    {
      FileInputStream fis = new FileInputStream(file);
      ois = new ObjectInputStream(fis);
      temp = ois.readObject();
      ois.close();
    }
    catch (Exception e)
    {}
    return temp;
  }
 
}

//dl
Avatar billede dl Nybegynder
18. januar 2006 - 09:57 #9
svar til mig selv
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