ich komme aus der C#, VB Net Programmierung und dort ist es recht praktisch, dass man Daten im Programm durch die MySettings speichern kann. Jetzt würde mich interessieren, ist das in Java auch machbar oder wie würde dort eine Speicherung von Daten aussehen?
Weder in C# noch in VB.net werden die Daten im Programm gespeichert. Die legen auch einfach nur eine Datei an, in der die Settings gespeichert werden. Den genauen Speicherort davon weiß ich nicht mehr, dürfte vermutlich in %appdata% liegen.
In Java sieht das im Grunde genauso aus, bloß das du eben nicht "automatisch" Settings im %appdata% hast. In Java legst du die Datei manuell an.
Weder in C# noch in VB.net werden die Daten im Programm gespeichert. Die legen auch einfach nur eine Datei an, in der die Settings gespeichert werden. Den genauen Speicherort davon weiß ich nicht mehr, dürfte vermutlich in %appdata% liegen
Okay also muss ich mir dann sowas wie eine xml oder txt erstellen. Gut das sollte machbar sein.
Dann habe ich mal eine weitere Frage dafür möchte ich jetzt kein neues Thema erstellen: Gib es eine Art "SaveFileDialog" den halte ich hier für "fast" optimal, für Hinweise wäre ich euch sehr dankbar!
Nein. Damit kannst du nur durch dein Filesystem browsen und eine oder mehrere Dateien/Directories selektieren. Einen SaveFile-Dialog mitsamt speichern wirst du m.E. nicht finden.
Okay, aber könnte ich diesen Dialog aus meinem Code erweitern, sodass mir eine xml oder txt gespeichert werden kann? Aktuell fällt mir diesbezüglich kein Code ein.
Das musst du dann im FileChooser selber hinterlegen. Mit dem FC bekommst du nur einen Ort/Pfad zurück WO du speicherst nicht das was
Java:
publicStringsaveFile(){String pfad;JFileChooser jfc =newJFileChooser();
jfc.setFileFilter(newFileNameExtensionFilter("Textdateien",".txt"));
jfc.showSaveDialog( jfc);File f =jfc.getSelectedFile();if( f ==null){String datname =t.dateTime();
mx.speichernFelder( datname);
pfad =datname;}else{
pfad =f.toString();}return pfad;}
dann brauchst du eine Verbindung zum schreiben der Datei - einen FileWriter
Java:
privatevoidopenStream(String datei){if( datei.equals("")){
datei =t.dateTime();}else{}try{File f =newFile( datei +".txt");//Datei erstellen mit Pfad und// Dateinamen aus dem Parameter datei
fw =newFileWriter( f);//öffnen des Bufferedwirter streams
bw =newBufferedWriter( fw);//öffnen des Bufferedwirter streams}catch(IOException ex){}}
und dann etwas was dir die Daten schreibt - einen OutputStream
Java:
publicvoidoutput(String dat,String[] values){openStream( dat);//mit der Methode openStream und dem Parameter wird einefor(String value : values){try{// auslesen des übergeben Datenarrays
bw.write( value + sep);//Schreiben der Daten in die Datei}catch(IOException ex){}}closeStream();}
Okay danke dir, wenn ich das richtig verstehe, muss ich hier: bw.write( value + sep); meine Daten angeben für sep also einen Beispieltext der in die txt geschrieben werden soll oder?
Die Daten die du schreiben willst übergibst du der beispielfunktion in dem Strin-Array "values". Ich nehme an mit "sep" war irgendeine Art Separator gemeint ("\n", "\t" oder so was in der Art)
Wenn du möglichst wenig Arbeit haben willst, dann speichere deine Objektstruktur als Xml ab, da gibt's entsprechende Automatismen dafür.
Oder aber schnapp dir ini4j, um Ini-Dateien abzuspeichern (dürfte eher MySettings entsprechen).
So oder so steht es dir aber frei, WO du speichern willst. Der FIleChooser lässt dich - wie der Name schon sagt - eine Datei auswählen, mit der musst du dann selbst was machen.
Falls du unter Windows arbeiten willst, empfehle ich, Appdata oder was ähnliches zu verwenden. Unter Linux & Co. wurde - als ich mich zuletzt damit beschäftigt hatte - normalerweise das Userverzeichnis samt unsichtbaren Unterverzeichnis (".directory") verwendet.
Mit der Java-Systemproperty "userhome" kriegst du dein User-Verzeichnis, den Rest des Pfades kannst du selbst zusammenstellen. Alternativ ist es natürlich auch möglich, den Appdata-Pfad direkt aus den Windows-Systemvariablen auszulesen.