Inselbewohner Geschrieben 13. Dezember 2009 Geschrieben 13. Dezember 2009 Hallo zusammen, ich habe folgendes Problem. Ich habe einen kleinen Währungsrechner programmiert, der später als .jar laufen soll. Damit man jetzt die Wechselkurse festlegen kann, hab ich in des gleiche Package wie die Klassen ein txtFile gelegt und lass zu beginn des Programm mal die aktuellen Kurse, momentan per Hand reingeschrieben, auslesen. Java: BufferedReader f = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("Kurse.txt"))); Danach kommen die in einen Array und man kann weiter damit arbeiten. Nun ist das Problem, dass man die ja auch verändern soll und beim nächsten Start dann die aktuellen Werte drin stehen sollen. Ich hätte des gern in der .jar an sich, damit ich keine neuen Ordner oder sowas anlegen muss. Ich habe aber nun keine Ahnung, was ich verwenden soll um wieder ein TextFiel zu erstellen. Auch hab ich was gelesen, dass des evtl nicht möglich ist Java Forum @ javaCore.de :: Thema anzeigen - Fehlerhaftes Schreiben in eine Datei ist ja aber auch schon ne Weil her. In externe Ordner hab ich mit dem FileWriter geschrieben und dann halt einen neuen Ordner über mkdir angelegt und den absoluten Pfad angegeben. Aber wie ich des in des package schaff, hab ich keine Ahnung. Habs mit OutputStreams, Url.getFile() versucht. Muss aber auch dazu sagen, dass ich von dem Streams kein Plan hab.... Zitieren
kingofbrain Geschrieben 14. Dezember 2009 Geschrieben 14. Dezember 2009 Servus, ohne zu wissen, ob es theoretisch funktionieren würde, halte ich Dein Vorhaben für eine schlechte Idee. Das JAR wird zur Laufzeit von der VM verwendet. In dieses Archiv jetzt noch schreibend von außen einzugreifen, könnte unter verschiedenen Systemen problematisch sein. Warum gehst Du nicht den Weg, den die meisten anderen Softwareentwickler auch gehen? Ein Entwickler einer Windows Binary würde ja auch nicht die Benutzereinstellungen in die .exe einbauen wollen. Mein Tipp: Lies und schreib Benutzereinstellungen vom / ins User-Home-Verzeichnis. Schöne Grüße, Peter Zitieren
perdian Geschrieben 14. Dezember 2009 Geschrieben 14. Dezember 2009 hab ich in des gleiche Package wie die Klassen ein txtFile gelegt und lass zu beginn des Programm mal die aktuellen Kurse, momentan per Hand reingeschrieben, auslesen. [...] Ich hätte des gern in der .jar an sich, damit ich keine neuen Ordner oder sowas anlegen muss.Autsch! Ich kann mich da nur kingofbrain anschließen: Lass es! Geh den "richtigen" Weg und schreibe solche Konfigurationsparameter in die entsprechend dafür vorgesehenen Ressourcen (Konfigurationsfiles, java.util.prefs.Preferences, ...). In ein JAR-File zu schreiben aus dem die aktuelle Klasse geladen worde ist wäre genauso als wollte ich unter Windows Daten in die EXE-Datei schreiben, von der aus mein Programm ausgeführt wird. Praktisch wäre die von die skiziierte Lösung unter Windows auch unmöglich, da eine JAR-Datei, die zum Lesen göeffnet wird für weitere Schreibzugriffe gesperrt ist. Muss aber auch dazu sagen, dass ich von dem Streams kein Plan hab....Und warum hast du dann noch keine Java IO-Tutorial gelesen? Zitieren
Inselbewohner Geschrieben 14. Dezember 2009 Autor Geschrieben 14. Dezember 2009 Jap, ich habe mich jetzt auch noch ne Weile damit auseinander gesetzt und mit meinem prof geredet und bin zur Lösung gekommen, des einfach extern zu speichern. Des hab ich auch schon hinbekommen. Wär meiner Meinung nach schöner, wenn man sowas mit ins jar packen könnte, vor allem wenns sich nur um ein paar Zeilen handelt. Aber trotzdem dank für die schnelle Antwort Zitieren
perdian Geschrieben 15. Dezember 2009 Geschrieben 15. Dezember 2009 Wär meiner Meinung nach schöner, wenn man sowas mit ins jar packen könnte, vor allem wenns sich nur um ein paar Zeilen handelt.Nein, wäre es nicht. Wie löst du Probleme wie Release-Fähigkeit, Auslieferung von Bugfixes, etc.? Es wird schon seinen Grund haben, dass in "richtigen" Anwendungen nie auf diese Art und Weise gelöst wird. Zitieren
Inselbewohner Geschrieben 15. Dezember 2009 Autor Geschrieben 15. Dezember 2009 Ja, gibt sicher nen guten Grund. Es gibt ja schließlich auch die Preferences. Hab mich jetzt mal ne Weile damit beschäftigt. Weis nur noch nicht genau, was des da macht und was der Unterschied zwischen userRoot und systemRoot ist. Aber ansosnten läuft des ganz gut. Zitieren
perdian Geschrieben 16. Dezember 2009 Geschrieben 16. Dezember 2009 Weis nur noch nicht genau, was des da macht und was der Unterschied zwischen userRoot und systemRoot ist.Stichwort: Mehrbenutzersystem. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.