Zum Inhalt springen

TxtDatei aus dem gleichen package lesen und schreiben


Empfohlene Beiträge

Geschrieben

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....

Geschrieben

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

Geschrieben
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?
Geschrieben

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

Geschrieben
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.

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...