Array Daten in Binär Datei schreiben/lesen

Seppe123

Mitglied
Hallo

Versuche gerade mein Array in eine Binärdatei zu schreiben und wieder aus zulesen. Leider klappt das nicht.

Hier meine Codes:

public static void write(Datensatz Daten) {

ObjectOutputStream out = new ObjectOutputStream(new
FileOutputStream("Daten.dat"));
out.writeObject(Daten);
out.close();

}



public static Datensatz read() {

ObjectInputStream in = new ObjectInputStream(new
FileInputStream("Daten.dat"));
Datensatz [] Daten = in.readObject();
return Daten;
in.close();
}



Aufruf der Funktion nach for-Schleife:

...
Daten = new Datensatz(T1.getText(), T2.getText(), T3
.getText(), T4.getText(), T5.getText()); //Daten aus Eingabemaske

IO.write(Daten[0]);
...


Erklärung:

Daten - Arrayname
Datensatz - Klasse mit Daten wie Vorname, Nachname...


Kann wer helfen?

DANKE
 

eRaaaa

Top Contributor
Also meiner Meinung nach sind hier mehrere Dinge "merkwürdig" :)

a) Du übergibst der Methode write ja nur einen einzelnen Datensatz, nicht das Array. Willst du nun nur einen einzelnen Datensatz oder doch das Array serialisieren?

b) bei der read - Methode das gleiche Spiel. Du versuchst mit in.readObject() das Object(welches du übrigens casten müßtest) in ein Array zu legen(was dafür sprechen würde dass du doch das gesamte Array serialisieren willst). Allerdings steht in der Methodensignatur wieder nur Datensatz, kein Datensatz[] ?!

Und noch eine Anmerkung: in.close() NACH einem return geht nicht :)
 

Seppe123

Mitglied
Danke für die Antwort. Verzweifle hier schon.

Möchte ein ganzes Array übergeben, aber zum Test habe ich nur das 1. Element übergeben. Ist das der Fehler?

Hier nochmal überarbeitet:

public static void write(Datensatz []Daten) {

ObjectOutputStream out = new ObjectOutputStream(newFileOutputStream("Daten.dat"));
out.writeObject(Daten);
out.close();

}


public static Datensatz[] read() {

ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"Daten.dat"));
Datensatz Daten = (Datensatz) in.readObject();
return Daten;



Die Read konnte ich bisher noch nicht testen, da die write nicht klappt.
 

eRaaaa

Top Contributor
Java:
	public static void write(Datensatz[] daten) throws IOException {
		ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("Daten.dat"));
		out.writeObject(daten);
		out.close();
	}

	public static Datensatz[] read() throws IOException, ClassNotFoundException{
		ObjectInputStream in = new ObjectInputStream(new FileInputStream("Daten.dat"));
		Datensatz[] daten = (Datensatz[]) in.readObject();
		in.close();
		return daten;
	}

Aufruf dann mit
Java:
IO.write(Daten); //Variablen(also hier Daten) lieber mit kleinem Anfangsbuchstaben!

Und deine Klasse Datensatz muss natürlich das Interface Serializable implementieren (als Anmerkung nebenbei ;D )
[c]class Datensatz implements Serializable {[/c]
 

Seppe123

Mitglied
Das mit dem Serialize habe ich :)

Klasse jetzt funktioniert es. Bei Arrays habe ich immer meine leichten Problem :)

Gibt es eine gute Seite, wo das mit den Array gut erklärt ist?
 

Seppe123

Mitglied
Habe jetzt mit bekommen, dass die Datei nicht den Inhalt nach dem Schliessen des Programms ausgeben kann ;(

Hier nochmal der überarbeitete Code:

Code:
public class IO {

	public static void write(Datensatz[] daten) throws IOException {
		ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
				"Daten.dat"));
		out.writeObject(daten);
		out.close();
	}

	public static Datensatz[] read() throws IOException, ClassNotFoundException {
		ObjectInputStream in = new ObjectInputStream(new FileInputStream(
				"Daten.dat"));
		Datensatz[] daten = (Datensatz[]) in.readObject();
		in.close();
		return daten;
	}

}

Und der Aufruf erfolgt durch foldendes Ereignis:

Code:
MouseAdapter mouse_write = new MouseAdapter() {
			public void mouseDown(MouseEvent e) {
				{
					int i = 0;

					for (i = 0; i < Daten.length; i++)
						Daten[i] = new Datensatz(T1.getText(), T2.getText(), T3
								.getText(), T4.getText(), T5.getText());

					try {
						IO.write(Daten);

					} catch (Exception ex) {
						System.out.println("Mysterious...");
					}
				}
			}
		};
 

eRaaaa

Top Contributor
Muss vielleicht noch dazu sagen, dass es unter SWT programmiert ist :)

Ah okay, von SWT habe ich keine Ahnung (sry) :) Aber dennoch denke ich nicht dass es an der IO-Klasse oder so liegt..Hast du den MouseAdapter auch irgendwo registriert? Wird die Methode mouseDown aufgerufen, hast du das überprüft?
Ansonsten könnte sicherlich auch ein kleines Testprogramm, das man mal selbst ausführen kann, sicherlich nicht schaden ;)
 

Seppe123

Mitglied
Bei anderen Proggs geht die Methode immer. Werde mal ein Test Prog erstellen :)

Nur mal kurz als Gedankenanregung. Wie kann ich es realisieren, dass beim Drücken des Button das Array um eins weiter läuft? For-Schleife wird komplett einmal durchlaufen und wie Pointer für Globales inkrement gibt es in Java nicht :( Array

Edit: Wie kann ich mit attempt Daten zur Datei hinzufügen?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3
M Variablen Daten aus Array löschen Java Basics - Anfänger-Themen 2
P Datentypen Array mit Daten befüllen Java Basics - Anfänger-Themen 5
E array; daten aus txt auslesen Java Basics - Anfänger-Themen 5
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
G Kopieren von Array-Daten Java Basics - Anfänger-Themen 6
A Daten speichern und wieder in ein Array laden Java Basics - Anfänger-Themen 4
F Große Daten und große Array Java Basics - Anfänger-Themen 21
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
B Daten in mehrdimensionalem Array, speichern, loeschen, aendern und abrufen Java Basics - Anfänger-Themen 2
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
A Array mit Objact als daten typ Java Basics - Anfänger-Themen 13
M Aus .txt Datei Daten in Array speichern Java Basics - Anfänger-Themen 3
G Abspeichern von Daten in Array oder ähnlichem Java Basics - Anfänger-Themen 3
G Daten aus einem Array auslesen Java Basics - Anfänger-Themen 2
Z daten in array eintragen Java Basics - Anfänger-Themen 12
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
A Elemente in einem Array Java Basics - Anfänger-Themen 5
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
AhmadSlack Array Java Basics - Anfänger-Themen 7
Jambolo Kartenhand Array Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben