Anzeige:
Ergebnis 1 bis 6 von 6

Thema: java: object-array in datei speichern und wieder auslesen?

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.02.2003
    Ort
    schweiz
    Beiträge
    37

    java: object-array in datei speichern und wieder auslesen?

    wie kann ich in java einen object-array in eine datei speichern und von dort auch wieder auslesen?

    meine überlegung war folgende (damit konnte ich vorher einen string abspeichern.):
    Code:
        public void saveToFile(Object[] cmdline){
            try{
                JFileChooser chooser = new JFileChooser();
                chooser.setCurrentDirectory(new File(System.getProperty("user.home")));
                int result = chooser.showSaveDialog(this);
                String filename = chooser.getSelectedFile().getPath();
                File saveFile = new File(filename);
                saveFile.createNewFile();
                PrintWriter out = new PrintWriter(new FileWriter(saveFile));
                out.write(cmdline);
                out.flush();
                out.close();
            }
    	catch(Exception e){
                JFrame frame = new JFrame();
                JOptionPane.showMessageDialog(frame, "Error while saving to file!");
    	}
        }
    das führt leider zu einem kompilierfehler...

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    ObjectOutputStream

    Code:
    Object[] array;
    
    //...
    
    FileOutputStream fileOut = new FileOutputStream(filename);
    ObjectOutputStream objectOut = new ObjectOutputStream(fileOut);
    objectOut.writeObject(array);
    Alle Element im Array müssen Serialisable implementieren.
    (Java Standard Typenklassen machen das bereits)

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.02.2003
    Ort
    schweiz
    Beiträge
    37

    nun das einlesen...

    danke, schreiben klappt. nun habe ich noch ein problem mit dem einlesen.

    Code:
    FileInputStream fis=new FileInputStream(filename);
    ObjectInputStream ois=new ObjectInputStream(fis);
    ???? = ois.readObject();
    fis.close();
    wie kriege ich das nun in einen Object-array?

  4. #4
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    vielleicht gehts auch einfacher, aber erstell mal eine Klasse, die dieses Array beherbergt, implementiere Serializable und schreib wenn Du alles in das Array in der Klasse eingelesen hast das Objekt in die Datei.

    so:
    Code:
    public class foo implements Serializable {
       Object [] array;
       //bastel Dir nen Konstruktor
       
       public void einlesen(Object obj) {
          //obj in Array schreiben
       }
    }
    Code:
    // in der bisherigen App:
    foo f = new foo();
    f.einlesen(objekt)
    //f an Filewriter übergeben
    das sollte man problemlos ein und auslesen können
    I haven't lost my mind - It's somewhere on a backup-disc

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477

    Re: nun das einlesen...

    Original geschrieben von neonknight
    danke, schreiben klappt. nun habe ich noch ein problem mit dem einlesen.

    Code:
    FileInputStream fis=new FileInputStream(filename);
    ObjectInputStream ois=new ObjectInputStream(fis);
    ???? = ois.readObject();
    fis.close();
    wie kriege ich das nun in einen Object-array?
    Code:
    Object[] array = (Object[]) ois.readObject();
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.02.2003
    Ort
    schweiz
    Beiträge
    37

    danke

    das war wohl etwas zu einfach, um von mir herausgefunden zu werden ;-) danke!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •