Objekte Dauerhaft speichern und evtl. auch ändern?

Status
Nicht offen für weitere Antworten.

mobile

Bekanntes Mitglied
HI,

bin jetzt so weit, dass ich alles richtig einlesen und ausgeben kann. Jetzt die nächste Sache. Wie kann ich denn meine angelegten Objekte dauerhaft speichern? Ein kleiner bsp. Code wäre echt super.

In diesem Array werden meine Objekte gespeichert:

Code:
static MiniDisc[][] md = new MiniDisc[MAX_MD][MAX_TRACK];

Bis jetzt nur zur Laufzeit, dann sind sie futsch, leider! Brächte sie für immer! :) Denke mal, ich müsste beim erstellen eines Objektes direkt was tu oder?

In dem Array werden eigentlich Objekte unter einem Hauptobjekt gepseichert. Genauer: Unter eine MiniDisc oder CD Nr. werden 20 Titel gepeichert.

Die 20 Track Objekte werden hier erstellt.

Code:
public class MiniDisc {
	static short md_nr = 0;
	
	
	private byte track = 0;
	private String interpret = "";
	private String titel = "";
	private String dauer = "";
	
	//...
		
	MiniDisc(byte track, String interpret, String titel, String dauer) {
		this.track = track;
		this.interpret = interpret;
		this.titel = titel;
		this.dauer = dauer;
	}
	
	//....
}

Wenn ich dass dann richtig gespeichert habe. Kann ich die Objekte dann auch öffnen und wieder ändern? Falls man zB. mal ein Lied löscht, oder man sich verschrieben hat etc.

Danke für eure Hilfe
 
G

Gast

Gast
stichwort serialisieren / Serializable

oder selbst die daten in eine Datei speichern, gibts viele beispiele im forum und auch in der javainsel gibts da ein paar kapitel zu
 

mobile

Bekanntes Mitglied
So habe mir das jetzt mal alles durchgelesen. Aber so richtig blicke ich noch nicht durch. Jetzt steht, da in meinem Buch, dass stitische Variablen nicht mit gespeichert werden. genau anhand dieser Variable wollte ich eigentlich speichern. Also muss ich die wohl erstma irgendwie als nicht statisch speichern.

Also ich zeige euch das mal. In dieses Klasse wird ein Objekt erstellt mit und unter der statischen Variablen in das Array gepsiechert.

Code:
public class Erstellen {
	final static short MAX_MD = 100;
	final static byte MAX_TRACK = 4;
	private String interpret = "";
	private String titel = "";
	
	static MiniDisc[][] md = new MiniDisc[MAX_MD][MAX_TRACK];
	
	Erstellen() {
		MiniDisc.md_nr++;
	}
	
	public void einlesen() {
		BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
		
		System.out.println("\nMini Disc Nummer: " + MiniDisc.md_nr + "\n");
		
	    try {	    	
	 	    for(byte i = 0; i < MAX_TRACK; i++) {	 
	 	    	System.out.println("Track    : " + (i + 1));
			     
			    System.out.print("Interpret: ");
			    this.interpret = din.readLine();
			    
			    System.out.print("Titel    : ");
			    this.titel = din.readLine();
					     
			    System.out.print("Dauer    : ");
			    String dauer = din.readLine();
			
			    System.out.println();
			 			    			    
			    MiniDisc m = new MiniDisc(i, this.interpret, this.titel, dauer);
			    
			    md[MiniDisc.md_nr - 1][i] = m;
	    	}
	    }
	    //..hier stehen noch catch anweisungen
	}
}

Mit
Code:
MiniDisc m = new MiniDisc(i, this.interpret, this.titel, dauer);
übergebe ich die eingelesen Werte an die nächste Klasse MiniDisc in der dann immer ein Objekt mit Nr. Interpret und Titel erstellt wird, und in dem Array gepseichert wird.

Code:
public class MiniDisc {
	static short md_nr = 0;
	
	private byte track = 0;
	private String interpret = "";
	private String titel = "";
	private String dauer = "";
	
	//....
		
	MiniDisc(byte track, String interpret, String titel, String dauer) {
		this.track = track;
		this.interpret = interpret;
		this.titel = titel;
		this.dauer = dauer;
	}
	
	//...
}

Wie kann ich denn jetzt die Objekte die alle schon temporär zur Laufzeit zur Verfügung stehen in dem Array auch dauerhaft speichern?
 

mobile

Bekanntes Mitglied
Weiß keiner nen Rat? Klasse Save habe ich schon geschrieben aber das funktioniert nicht! Weß wirklich nicht warum, mach das zum ersten Mal, und aus dem Büchern werde ich auch nciht schlau.
 
G

Guest

Gast
Damit ein Objekt serialisiert werden kann, muss es das Interface java.io.Serializable implementieren (siehe MiniDisc)
Serialisiert und Deserialisert wird mit ObjectInputStream und ObjectOutputStream (Methoden load und store).
Die MiniDiscs sind hier in einer Collection ehhmm Liste gespeichert.
Code:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class MiniDiscList
{
   /**
    * Lädt die Liste der MiniDics aus einer Datei.
    * Falls die gegebene Datei nicht existiert, wird eine leere Liste zurückgegeben.
    * 
    * @param mdFile Datei mit serialisierten Minidiscs
    * @return Liste mit Minidiscs
    * @throws IOException Fehler bei der Deserialisierung
    * @throws ClassNotFoundException Fehler bei der Deserialisierung
    */
   @SuppressWarnings("unchecked")
   public static List<MiniDisc> load(File mdFile) throws IOException, ClassNotFoundException
   {
      List<MiniDisc> mdList;
      if(mdFile.exists())
      {
         ObjectInputStream v_Stream = new ObjectInputStream(new FileInputStream(mdFile));
         mdList = (List<MiniDisc>)v_Stream.readObject();
         v_Stream.close();
      }
      else
      {
         mdList = new ArrayList<MiniDisc>();
      }
      return mdList;
   }
   
   /**
    * Speichert die gegebene Liste mit MiniDics in einer Datei.
    * Falls die gegebene Datei nicht existiert, wird eine neue erstellt.
    * 
    * @param mdFile Datei, in die geschrieben wird
    * @param mdList Liste der zu speichernden MiniDiscs
    * @throws IOException Fehler bei der Serialisierung
    */
   public static void store(File mdFile, List<MiniDisc> mdList) throws IOException
   {
      assert mdList != null;
      ObjectOutputStream v_Stream = new ObjectOutputStream(new FileOutputStream(mdFile));
      v_Stream.writeObject(mdList);
      v_Stream.close();
   }
   
   public static void main(String args[]) throws Exception
   {
      File mdFile = new File("md.dat");
      
      List<MiniDisc> mdList = load(mdFile);
      
      mdList.add(new MiniDisc());
      mdList.add(new MiniDisc());
      mdList.add(new MiniDisc());
      mdList.add(new MiniDisc());
      mdList.add(new MiniDisc());
      
      store(mdFile, mdList);
   }
}

class MiniDisc implements Serializable
{
   private static final long serialVersionUID = -5009805326091172496L;

   private Integer md_nr; 
   private Byte track; 
   private String interpret; 
   private String titel; 
   private String dauer;
   
   public MiniDisc()
   {
   }

   ... Getter und Setter
}
 

mobile

Bekanntes Mitglied
huuu....... versteh rein nichts! Danke trotzdem für deine Mühe. Denke ich sollte mei Programm noch mal überdenken. Am besten geh ich mal langsam durch was ich brauche. Klasse für Klasse Schritt für Schritt. Erstmal nur rein das speichern der MiniDisc. Wäre ganz gut, wenn mir dabei einer helfen könnte.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
schegga_B javax.crypto - Cipher Objekte - Sevice Provider matching? Allgemeine Java-Themen 1
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
MiMa Referenz auf Objekte und deren Inhalte Allgemeine Java-Themen 12
W Objekte reproduzieren Allgemeine Java-Themen 2
W Objekte per Reflexion instanziieren Allgemeine Java-Themen 7
W Unittest - Objekte simulieren Allgemeine Java-Themen 7
T OOP Objekte mit Erweiterung Initialisieren Allgemeine Java-Themen 6
O Erste Schritte Objekte als Datenelemente Allgemeine Java-Themen 14
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
F Objekte erzeugen Allgemeine Java-Themen 1
E Threads ThreadPoolExecutor remove mit callable Objekte Allgemeine Java-Themen 3
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
E OOP Objekte und Methoden Allgemeine Java-Themen 1
@SupressWarnings() Umgebungsvariable Objekte "gekoppelt" Allgemeine Java-Themen 6
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
C Objekte in Array List speichern? Allgemeine Java-Themen 1
OnDemand Objekte speichern Allgemeine Java-Themen 8
B Objekte anhand von Properties file Allgemeine Java-Themen 41
U Tiefe Objekte schreiben Allgemeine Java-Themen 1
R Abstrakte Basisklasse und instanzierte Objekte der abgeleiteten Klasse als Basisklasse übergeben Allgemeine Java-Themen 2
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
F FileOutput/Input Objekte Allgemeine Java-Themen 6
OnDemand Objekte serialisieren Allgemeine Java-Themen 3
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
B Mehrere Objekte verschlüsselt serialisieren Allgemeine Java-Themen 6
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
N 2 Objekte zu einer Gruppe zusammenfügen Allgemeine Java-Themen 7
M Instanzierte Objekte in XML Dokument speichern Allgemeine Java-Themen 3
B Verschiedene Objekte in Abhängigkeit eines Typs instanziieren. Allgemeine Java-Themen 17
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
H Objekte Serialisiert speichern Allgemeine Java-Themen 10
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
5 Objekte Sortieren lassen Allgemeine Java-Themen 7
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
L Input/Output Textdatei in Objekte überführen? Allgemeine Java-Themen 4
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
M Java Objekte in XML mit JAXB Allgemeine Java-Themen 9
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
H COM-Objekte/ AktiveX Objekte Allgemeine Java-Themen 4
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
X Objekte aus TableModel serialisieren und deserialisieren Allgemeine Java-Themen 4
T ObjectInputStream - Arrayliste, die unbekannte Objekte enthält Allgemeine Java-Themen 9
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
D Grafische Objekte zeichnen Allgemeine Java-Themen 4
A Wie zur Laufzeit auf Objekte zugreifen Allgemeine Java-Themen 7
F Referenzen auf Objekte Allgemeine Java-Themen 5
H Eclipse und Objekte Allgemeine Java-Themen 6
S Objekte die Objekte enthalten: Keine Vererbung Allgemeine Java-Themen 4
E Objekte in einer Liste suchen. Allgemeine Java-Themen 4
I Über eine Liste iterieren und Objekte löschen. Wie löst man das sauber? Allgemeine Java-Themen 5
I Pattern zum Erweitern existierender Objekte Allgemeine Java-Themen 4
N Dynamische Objekte / DB Allgemeine Java-Themen 5
J Objekte binär speichern Allgemeine Java-Themen 10
TiME-SPLiNTER Unbekannte Anzahl serialisierter Objekte lesen Allgemeine Java-Themen 2
V Objekte in Kategorien einteilen. Allgemeine Java-Themen 6
M 3D Objekte mit einer Linie Verbinden Allgemeine Java-Themen 3
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
A Dummy-Objekte für Webgui erzeugen Allgemeine Java-Themen 12
W Objekte speichern mit JFileChooser Allgemeine Java-Themen 8
D befehl auf mehrere objekte anwenden Allgemeine Java-Themen 7
L Objekte in Liste packen Allgemeine Java-Themen 2
S XML in Objekte wandeln. Euer Rat? Allgemeine Java-Themen 12
G Objekte serialisieren Allgemeine Java-Themen 2
L Parameter-Objekte verändern oder nicht? Allgemeine Java-Themen 6
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
S Objekte mit Arrays Allgemeine Java-Themen 9
F Objekte oder besser ID in Listen speichern? Allgemeine Java-Themen 2
S erzeugte objekte zählen Allgemeine Java-Themen 3
U auf Objekte mit variablem Namen zugreifen Allgemeine Java-Themen 4
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
Landei Objekte ohne Konstruktoraufruf erzeugen Allgemeine Java-Themen 7
E tiefe Kopie nicht serialisierbarer Objekte Allgemeine Java-Themen 3
J Speicherbedarf und persistente Objekte Allgemeine Java-Themen 4
J ArrayList Objekte anhand Propertywerte filtern Allgemeine Java-Themen 3
R Moeglichst viele Datumsstrings in Date Objekte konvertieren? Allgemeine Java-Themen 3
J Eindeutige ID für Objekte als Keys in TreeMap Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben