Serialisieren

Hubson

Mitglied
Moin moin,

bin blutiger Java Anfänger und hab da so meine Probleme mit dem Datenabspeichern bei diesen Aufgaben, vllt kann mir einer sagen was ich falsch mache....


Deklarieren Sie eine Java-Klasse namens Ort, die vier Attribute enthält: den Namen als String, die geographische Breite und Länge vom Datentyp double und die Höhe über Normalnull in Metern als int.
Deklarieren Sie in der Klasse zwei Konstruktoren:
Der erste Konstruktor soll alle Attribute auf 0 setzen. Der zweite Konstruktor soll vier Werte aus den Parametern für die Attribute übernehmen. Serialisieren Sie die Klasse Ort.


Java:
import java.util.*;
import java.io.*;

public class Ort implements Serializable
{
String Name;
double Breite, Laenge;
int Normalnull;
  public Ort ( )
  {
  [code]   Name= [COLOR="Red"]???[/COLOR]; \\ den String auf Null setzten, versteh ich nicht??? [C\]
     Breite= 0.0;
     Laenge= 0.0;
     Normalnull =0;
  }
  public Ort ( String Na, Double Br, double Lae, int Normal)
  {
     Name= Na;
     Breite= Br;
     Laenge= Lae;
     Normalnull = Normal;
  }
}
Schreiben Sie ein Java-Programm. Dieses soll zunächst drei Instanzen Ihrer Klasse Ort erzeugen:
Leipzig: Breite 51.19 Länge 12.25, Höhe über NN 146
Freiburg: Breite 47.59 Länge 7.51, Höhe über NN 278
Lübeck: Breite 53.54 Länge 10.42, Höhe über NN 13

Dann soll Ihr Programm die drei Orte zusammen in einer Datei namens Orte.dat abspeichern.


Java:
import java.io.*;
import java.util.*;


class NeueOrte extends Ort 
{

	public static void	main (String [] args) 
 {
               


		Ort Leipzig = new Ort ("Leipzig", 51.19, 12.25, 146);
                Ort Freiburg = new Ort ("Freiburg", 47.59, 7.51, 278);
                Ort Luebeck = new Ort ("Luebeck", 53.54, 10.42, 13);
               
           try {

			FileOutputStream	fs = new FileOutputStream ("Orte.dat");
			ObjectOutputStream	os = new ObjectOutputStream	(fs);

			os.writeObject (Leipzig, Freiburg, Luebeck);
			os.close ();
                        fs.close ();

		} catch (IOException e) {}

 }
}
wenn ich den code kompilieren will bekomme ich immer eine fehler meldung, was amche ich falsch, bzw. wo ist mein fehler?

bin wie gesagt noch ein java neuling von daher seht von meiner unwissenheit ab, danke :)
 
Zuletzt bearbeitet von einem Moderator:

Fanvaron

Mitglied
zunächst einmal solltest du deinen beitrag editieren und den Hinweis über jedem Eingabe fenster beherzigen


Attention! Java™ Quelltext ist bitte in
Java:
-Tags zu schreiben: [code=Java]hier Java Code einfügen

Tipp... Man kann die Zeilennummer des Quelltextes explizit angeben: [JAVA=42]hier Codeausschnitt einfügen[/code]
Tipp... Innerhalb von Fließtext kann man eine einzelne Codezeile explizit angeben:
Code:
hier Codezeile einfügen
Tipp...
Java:
-Tags können auch vom Editor durch klicken auf das Java-Code -Symbol erzeugt werden.
 

Hubson

Mitglied
zunächst einmal solltest du deinen beitrag editieren und den Hinweis über jedem Eingabe fenster beherzigen


Attention! Java™ Quelltext ist bitte in
Java:
-Tags zu schreiben: [code=Java]hier Java Code einfügen

Tipp... Man kann die Zeilennummer des Quelltextes explizit angeben: [JAVA=42]hier Codeausschnitt einfügen[/code]
Tipp... Innerhalb von Fließtext kann man eine einzelne Codezeile explizit angeben:
Code:
hier Codezeile einfügen
Tipp...
Java:
-Tags können auch vom Editor durch klicken auf das Java-Code -Symbol erzeugt werden.[/QUOTE]

ok danke für die info, hoffe jetzt ist es besser
 

Fanvaron

Mitglied
Also zu deinem Problem mit dem String, den kannst du natürlich nicht auf 0 setzen du könntest ihn auf
Code:
Name = null;
setzen aber dann hat die Variable keinen Wert, wenn du einen leeren Wert haben willst, wie halt bei den Doubles 0 würd ich sagen du machst einfach
Code:
Name = "";
so hast du einen string wo nichts drin steht, aber er existiert schon.

Nebenbei, man sollte Variablennamen nicht mit einem Großbuchstaben anfangen.

Und mit dem Objectwriter hab ich noch keine Erfahrung, sollte aber eig so gehen (glaube ich)


und was funktioniert nicht? Eigentlich solltest du ja eine Fehlermeldung bekommen, poste die mal
 
Zuletzt bearbeitet:

Hubson

Mitglied
Danke schon mal für die schnelle Anwort. Das mit dem String auf Null setzten lese ich so aus der Aufgabenstellung heraus, die Idee mit dem Leerstring ist aber gut...daran hab ich nicht gedacht.

Hier die Fehlermeldung des 2ten Codes:


C:\work>javac NeueOrte.java
NeueOrte.java:22: writeObject(java.lang.Object) in java.io_ObjectOutputStream ca
nnot be applied to (Ort,Ort,Ort)
os.writeObject (Leipzig, Freiburg, Luebeck);
^
1 error
 

Marc T.

Bekanntes Mitglied
Du kannst nicht alle 3 Orte mit Komma getrennt
gleichzeitig über writeObject schreiben.

Ich schlage dir vor die Orte in einen Container zu packen
(nimm einfach nen Array aus Orten) und schreibe dann
das Array per ObjectStream in die Datei.

Die zweite Möglichkeit ist du schreibst drei mal:

Java:
os.writeObject(Leipzig);
os.writeObject(Freiburg);
os.writeObject(Luebeck);

Dann musst du allerdings deine Datei mit append geöffnet haben.
 
Zuletzt bearbeitet:

Marc T.

Bekanntes Mitglied
Jetzt warste schneller mit editieren xD

Nuja, und denke daran, dass wenn du Dateien wieder aus
der Datei ausliest, musst du sie auf "Ort" casten, da sie
in der Datei als Object abgelegt werden.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
an eine Object-Stream-Datei kann man nichts appenden, die muss man immer komplett neu beschreiben, sonst gibts Fehler,
auf mehrere write-Aufrufe in einem Durchgang hat das eh keinen Einfluss, nur ob vorher schon was in der Datei stand
 

Hubson

Mitglied
Du kannst nicht alle 3 Orte mit Komma getrennt
gleichzeitig über writeObject schreiben.

Ich schlage dir vor die Orte in einen Container zu packen
(nimm einfach nen Array aus Orten) und schreibe dann
das Array per ObjectStream in die Datei.

Die zweite Möglichkeit ist du schreibst drei mal:

Java:
os.writeObject(Leipzig);
os.writeObject(Freiburg);
os.writeObject(Luebeck);

Dann musst du allerdings deine Datei mit append geöffnet haben.

ok, da ich mich mit dem thema array noch nnicht so super vertraut bin, nehme ich mal die 2te möglichkeit
danke für die antwort
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Methoden Serialisieren Java Basics - Anfänger-Themen 17
H Interface Objekte speichern und laden (serialisieren/deserialisieren) Java Basics - Anfänger-Themen 1
J Serialisieren, aber wie? Java Basics - Anfänger-Themen 3
M Datum serialisieren Java Basics - Anfänger-Themen 1
M Serialisieren Java Basics - Anfänger-Themen 7
T Array serialisieren Java Basics - Anfänger-Themen 8
E Serialisieren Java Basics - Anfänger-Themen 2
F Input/Output Serialisieren/Deserialisieren Java Basics - Anfänger-Themen 18
D Serialisieren, was bringt das? Java Basics - Anfänger-Themen 8
P Serialisieren-deserialisieren Java Basics - Anfänger-Themen 18
F Serialisieren Java Basics - Anfänger-Themen 35
K Serialisieren mit Progress Java Basics - Anfänger-Themen 2
D Serialisieren/deserialisieren Java Basics - Anfänger-Themen 37
S JFrame mit JTextPane serialisieren Java Basics - Anfänger-Themen 5
W Objekt (de-)serialisieren Java Basics - Anfänger-Themen 5
G Serialisieren mehrerer Objekte in EINE (XML)-Datei Java Basics - Anfänger-Themen 12
E ArrayList mit eigenen typ serialisieren? Java Basics - Anfänger-Themen 1
R Objecte Serialisieren / Deserialisieren Java Basics - Anfänger-Themen 2
S Klassen Serialisieren Java Basics - Anfänger-Themen 5
V Objekt serialisieren/Deserialisieren und per get verschicken Java Basics - Anfänger-Themen 5
J Serialisierung - Array-Objekt serialisieren/deserialisieren Java Basics - Anfänger-Themen 6
V Serialisieren einer ShortMessage (javax.sound.midi) Java Basics - Anfänger-Themen 5
M Serialisieren beim Schließen des Progs sicher beenden Java Basics - Anfänger-Themen 4
H Datei nach serialisieren leer ? Java Basics - Anfänger-Themen 10
G static var serialisieren möglich? Java Basics - Anfänger-Themen 4
Lulumann6 Serialisieren? Java Basics - Anfänger-Themen 9
artur.cichosz Objekt als String serialisieren Java Basics - Anfänger-Themen 7
M Problem beim Serialisieren Java Basics - Anfänger-Themen 7
S Generics serialisieren? Java Basics - Anfänger-Themen 2
C LinkedList serialisieren? Java Basics - Anfänger-Themen 22
G Color und String serialisieren Java Basics - Anfänger-Themen 2
G alle Instanzen einer Klasse serialisieren Java Basics - Anfänger-Themen 4
C Mehrere Objekte in einer Liste einfügen und serialisieren Java Basics - Anfänger-Themen 1
S Vector serialisieren Java Basics - Anfänger-Themen 4
C Objekt serialisieren Java Basics - Anfänger-Themen 5

Ähnliche Java Themen


Oben