Speichern und Laden

petterapamm

Aktives Mitglied
Hallo!
Ich bin gerade dabei ein Programm zu schreiben, in das bei der Verwendung eine Menge Daten eingetragen werden. Dazu wäre es praktisch eine Methode einzuführen, die das Speichern von Variablen in eine Datei und Laden dieser Einträge erlaubt. Diese Einträge sind boolean-Werte, doubles und Strings.
Ich habe schon versucht mich etwas zu informieren, bin aber noch nicht so sehr weit gekommen:
Ich weiß, dass das Speichern irgendwie mit FileOutputStream() funktioniert und das Laden mit FileInputStream(). Desweiteren hab ich noch von den Methoden write() (o.ä.), flush() und close() gehört, die man am Ende des Speichervorgangs braucht, damit die Datei geschrieben (write) und das Speichern abgeschlossen wird.
Jedoch verstehe ich nicht, was jetzt genau getan werden muss, damit Dateien ausgegeben und wieder ausgelesen werden können.

MfG,
petterapamm

PS.: Ich bin mir nicht sicher, ob dies wirklich ein Java-Einsteiger-Thema ist, aber ich fühle mich noch so als Anfänger, dass ich glaube in diesem Forenabschnitt richtig zu sein.
 

nrg

Top Contributor
propertiesdatei, datenbank, serialisierung. such dir was aus und google danach :) (bzw. wir könnten dir ein kleines bsp zeigen)

die einstellungen einfach so in eine datei zu schreiben, ist imho nicht so schön aber streams wirst du definitiv brauchen - da bist du schon auf dem richtigen weg ;)
 

Haave

Top Contributor
Bin selbst auch grad dabei, mit Head First Java Serialisierung zu lernen.
Wichtig: soweit ich das bis jetzt verstanden habe, geht es bei Serialisierung darum, den Zustand von Objekten abzuspeichern. Wie es bei primitiven Datentypen aussieht (da du sagtest, du wolltest u.a. booleans und doubles abspeichern…), weiß ich nicht. … wobei du diese auch theoretisch mithilfe ihrer Wrapper-Klassen in Objekte packen könntest… *überleg*
Hier mal ein kleines kommentiertes Code-Beispiel in Anlehnung an den Beispielcode im Buch, mit OutputStreams und dergleichen, vielleicht hilft es dir ja :):

Java:
import java.io.Serializable;

public class GameCharacter implements Serializable {
	String name;
	final String RACE;
	int age;
	
	public GameCharacter(String name, String RACE, int age) {
		this.name = name;
		this.RACE = RACE;
		this.age = age;
	}
	
	String getName() {
		return name;
	}
	
	String getRace() {
		return RACE;
	}
	
	int getAge() {
		return age;
	}
}

Java:
import java.io.*;

public abstract class GameCharacterTestDrive {
	
	public static void main(String[] args) {
		
		//create a game character
		GameCharacter alice = new GameCharacter("Alice", "Human", 45);
		System.out.println("Alice is now "+alice);
		System.out.println("Alice is of race "+alice.getRace());
		
		//write the character's data to a file
		try {
			ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("Alice.ser"));
			os.writeObject(alice);
			os.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		//set the reference to null
		alice = null;
		System.out.println("Alice is now "+alice);
		
		//get the data back
		try {
			ObjectInputStream is = new ObjectInputStream(new FileInputStream("Alice.ser"));
			alice = (GameCharacter) is.readObject();
			System.out.println("Alice is now "+alice);
			System.out.println("Alice's age is "+alice.getAge());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 

nrg

Top Contributor
ich fass dir das mal noch kurz zusammen:

wenn du Objekte speichern willst, nimm Serialisierung (siehe haave). Wenn du Objekte speichern willst und auch Änderungen der EInstellungen ausserhalb des Programmes vornehmen möchtest, nimm xml-serialisierung. wenn du tabellarische Daten speichern willst, nimm eine Datenbank. Wenn du einfach paar booleans, Strings, whatever speichern willst, nimm eine Properties-Datei.
 

petterapamm

Aktives Mitglied
Kann es sein, dass in der Properties-Datei nur String-Variablen gespeichert werden können? Wenn ich versuche, den Inhalt einer Variable der Properties-Datei z.B. mit einer int-Variable gleichzusetzen, sagt BlueJ mir, dass der ausgelesene Wert ein String ist und es deswegen nicht funktioniert. Das einzige was Google mir als Lösung gebracht hat ist konvertieren von Strings in Integer, was ich aber irgendwie unschön finde. Soll ich vielleicht doch lieber Serialisierung verwenden?
 

Wortraum

Bekanntes Mitglied
Kann es sein, dass in der Properties-Datei nur String-Variablen gespeichert werden können?
Genau, logischerweise kannst Du nur Text schreiben, da es nur eine in ISO-8859-1 kodierte Textdatei ist. Das macht sie auch einfach und angenehm.

Falls Du die einfachen Parser‐Methoden noch nicht kennen solltest, hier sind sie: Boolean.parseBoolen(String) und Integer.parseInt(String).
 

Nicer

Bekanntes Mitglied
Mir fällt dazu folgende vorgehensweise ein:

du speicherst deine objekte erstmal in einem Vector Container oder einer List. Danach Speicherst du diesen Container / List per BufferedWriter zeile für zeile über eine for schleife in deine datei.

Dann hastu die datei

so , einlesen tust du das ganze wieder per BufferedWriter zeile für zeile. Dann hastu einen Sogenannten CSV String , das heisst alles hängt in einem string , den es nun zu teilen gilt. Hierfür schlage ich dir einen StringTokenizer vor , mit dem kannstu dann den CSV String wieder auf deine Variablen einlesen. Dann legstu das ganze einfach wieder per For Schleife datensatz für datensatz in deinen Vector / Deine List ein. Arbeiten tust du dann die ganze zeit mit den Vektoren / Listen , und speicherst am besten nach allen änderungne , sonst kann es zu relativ krassen datenlaufzeitfehler mit datenverlust führen

Alles wissenswerte zu dem oben genannten findest du zB im Galileo Openbook : Java ist auch eine Insel 8

Viel spass mit dem genannten

übrigens habe ich mit dem oben genannten eine Mediathek mit kunden , medien und verleihdatenbank auf txt ebene umgesetzt.

Hierbei musstu beachten : du musst für jeden datensatz den gleichen aufbau haben :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
L Speichern und Laden Java Basics - Anfänger-Themen 7
H Interface Objekte speichern und laden (serialisieren/deserialisieren) Java Basics - Anfänger-Themen 1
Seikuassi Objekte in Datei reihenweise speichern/laden Java Basics - Anfänger-Themen 3
C Daten speichern und laden Java Basics - Anfänger-Themen 6
L Termin in Array speichern/laden Java Basics - Anfänger-Themen 21
L Input/Output Sortieren Speichern Laden von ArrayListe Java Basics - Anfänger-Themen 14
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
S Problem beim Speichern und Laden von Daten Java Basics - Anfänger-Themen 13
A Daten speichern und wieder in ein Array laden Java Basics - Anfänger-Themen 4
Ezra StyledDocument speichern und laden Java Basics - Anfänger-Themen 6
K ObjectArray Speichern und laden Java Basics - Anfänger-Themen 8
H zustände speichern und beim erneuten programmstart zustände automatisch laden Java Basics - Anfänger-Themen 26
M txt laden und speichern Java Basics - Anfänger-Themen 8
Developer_X Txt Document laden inhalt löschen und anderen text rein und wieder speichern Java Basics - Anfänger-Themen 36
S Eingegebenes Speichern und Laden Java Basics - Anfänger-Themen 5
W Speichern und Laden in Java Java Basics - Anfänger-Themen 9
A arraylist speichern/laden problem Java Basics - Anfänger-Themen 3
F Laden und Speichern von Objekten (Autos / Filialen) Java Basics - Anfänger-Themen 4
H Array + StringBuilder in eine Textdatei speichern.laden. Java Basics - Anfänger-Themen 7
K Speichern und laden in der gui Java Basics - Anfänger-Themen 3
N speichern und laden im Java Java Basics - Anfänger-Themen 5
F Bild einmal aus Datei laden und in Klasse speichern Java Basics - Anfänger-Themen 3
G String auslesen bzw. arraylist speichern und laden Java Basics - Anfänger-Themen 14
P Arrayiste/Datei - Speichern/Laden Java Basics - Anfänger-Themen 5
M Speichern bzw. Laden wie in Word Java Basics - Anfänger-Themen 7
B Einfaches Speichern und Laden in Java? Java Basics - Anfänger-Themen 3
G Laden und Speichern der Konfiguration einer gra. Oberfläche Java Basics - Anfänger-Themen 4
M Objekte speichern und laden Java Basics - Anfänger-Themen 5
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
Marlena Bauer Konsolenausgabe in .txt speichern Java Basics - Anfänger-Themen 6
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
C File speichern Java Basics - Anfänger-Themen 5
D String und char in String speichern Java Basics - Anfänger-Themen 5
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
GermanPie Nachrichten Speichern Java Basics - Anfänger-Themen 2
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Wo Defaultpfad speichern? Java Basics - Anfänger-Themen 2
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
S Zweidimensionales Array in ein eindimensionales Array speichern Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
C ResultSet in Array speichern Java Basics - Anfänger-Themen 5
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
I Datei in Programm speichern Java Basics - Anfänger-Themen 3
A .txt-Datei mit Java speichern Java Basics - Anfänger-Themen 2
M Speichern unter. Java Basics - Anfänger-Themen 11
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben