Datenspeicherung?

manniL|

Mitglied
Heyho Leute,

folgdenes Szenario:

Ich habe einen Button. Wenn ich auf den Button drücke soll wert X um eins inkrementiert werden. [Bis hierhin geht alles, doch jetzt der springende punkt:] Ich beende das Programm (X ist momentan auf eins). Ich starte das Programm. X ist auf 0. Wie kann ich den inkrementierten Wert nun speichern? (Ist es ohne ein File möglich?).

MfG

manniL
 

JavaNurd

Mitglied
Nein du musst das irgendwo abspeichern da die Variable ja iwo initialisiert werden muss, und damit wird sie jedesmal neu auf 0 initialisiert.
Selbst wenn du sie nicht expilizit initialisierst, das übernimmt dann Java implizit für dich...

ergo: Klasse FileWriter hilft
Ist ein wenig umständlich aber geht glaub nicht anders lass mich aber auch gerne belehren...
 

hdi

Top Contributor
Zur Laufzeit eines Programms befinden sich alle Daten die es verwendet im Hauptspeicher. Wenn das Programm beendet wird werden diese Daten gelöscht. Alles, was du nicht vor Beendigung des Programms auf einem nicht-flüchtigen Speichermedium (zB Festplatte) abspeicherst, ist unwiderruflich verloren.

Ist es ohne ein File möglich?
Ja, wenn du die Daten zur Laufzeit über einen Stream an eine andere Anwendung schickst, und sie dir beim Neustart von ihr holst. Natürlich darf diese Anwendung dann aber selbst nicht beendet werden. Aber das ist natürlich Quatsch ;)

Speicher dir den Wert in eine Datei, und lies sie aus wenn du das Programm startest. Du brauchst für dieses kleine Beispiel nicht mal den erwähnten FileWriter, denn du kannst den Wert direkt als Dateinamen übergeben. Finden tust du die Datei dann über eine selbst gewählten Datei-Endung, und der Name ist der gewünschte Wert.

Stichworte:

Java:
File(String path)
File#createNewFile()
File#listFiles()
File#getName()
String#equals(String)
Integer.parseInt(String)
 
T

Tomate_Salat

Gast
Wie kann ich den inkrementierten Wert nun speichern? (Ist es ohne ein File möglich?).
Ja. Preferences

Ja, wenn du die Daten zur Laufzeit über einen Stream an eine andere Anwendung schickst, und sie dir beim Neustart von ihr holst. Natürlich darf diese Anwendung dann aber selbst nicht beendet werden. Aber das ist natürlich Quatsch ;)
Soso, ein Server ist also Quatsch :D. Wenn das Programm nun die Anfänge eines MMORPGs sind und X für den Level des Characters ingame steht? Ne achwas. Ja ist hier tatsächlich Quatsch :D scnr
 

Andi_CH

Top Contributor
Wie kann ich den inkrementierten Wert nun speichern? (Ist es ohne ein File möglich?).

Kannst ihn ja in die Registry schreiben.
Oder dir selbst per Mail zusenden und beim Programmstart holen

:autsch: Aua, nein, nicht hauen :D

1. Ist nicht portabel und, na ja ich sags mal so, ich mag schon Windows nicht besonders und die Registry noch ein bischen weniger, aber es würde funktionieren.

2. Logisch: Nicht ernst zu nehmen ...

Was spricht denn gegen ein File?
Persistente Datenhaltung ist nur in Files möglich (Ach Datenbanken schreiben ihre Daten in Files ;-) )
 
T

Tomate_Salat

Gast
Kannst ihn ja in die Registry schreiben.

1. Ist nicht portabel und, na ja ich sags mal so, ich mag schon Windows nicht besonders und die Registry noch ein bischen weniger, aber es würde funktionieren.

Jou, mit Preference ;-) und das ist nicht Windows-only. Mit dem "nicht portablen" hast du recht. Btw bin ich auch kein Fan von dieser Lösung :)

Oder dir selbst per Mail zusenden und beim Programmstart holen

:autsch: Aua, nein, nicht hauen :D
Nein, aus, pfui. Es gibt Lösungswege da gehörts einem nicht anderster :D
 

Ähnliche Java Themen

Neue Themen


Oben