txt-Datei als Ressource in jar-Datei

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Guten Tag,

ich habe ein Programm geschrieben, das eine txt-Datei komplett einliest, das Ganze in einen String packt und dann bearbeite ich das Ganze fröhlich weiter.

Der Code zum Einlesen der Datei sieht nun wie folgt aus:

Code:
InputStream fileStream = new FileInputStream(path);
Reader reader = new InputStreamReader(fileStream);  
BufferedReader lineReader = new BufferedReader(reader);

Es funktioniert wunderbar.
(Als "path" wird dann immer der Link zur jeweiligen txt-Datei eingeben, z.B: "Daten/Vorlage.txt"

Nun habe ich folgendes Problem:

Mein Programm will ich als jar-Datei packen um es so direkt ausführen zu können. Dabei soll diese txt-Datei auch weiterhin eingelesen werden können. Ich habe nun durch Suchen herausgefunden, das in jar gepackte Ressourcen irgendwie über

getRessourceAsStream

eingelesen werden müssen. Ich scheine nun allerdings zu blöd zu sein, meinen obigen Programm Code dementsprechend anzupassen.

Ich würde mich sehr freuen, wenn mir jemand bei diesem Problem weiter helfen könnten.

Ansonsten wünsche ich noch einen angenehmen Abend.

Danke im Vorraus.
 
wenn du das übliche getRessourceAsStream der Klasse Class nutzt, ist zu beachten, dass man seine Pfadangabe mit einem / beginnt, ansonsten wird automatisch das Package der Klasse dem Pfad vorangesetzt.

Beispiel:
Code:
package mypackage;

public class MyClass
{
  public void readText()
  {
    String filename = "directory/file.txt";

    Inpurstream in1 = this.getClass().getRessourceAsStream(filename);  // sucht im classpath nach "mypackage/directory/file.txt"

    Inpurstream in2 = this.getClass().getRessourceAsStream("/" + filename);  // sucht im classpath nach "directory/file.txt"
  }
}
 
Gar nicht. Du kannst nicht einfach wieder zurück ins jar schreiben. Die Sache ist für lesenden Zugriff gedacht.
Was willst du denn speichern?
 
Nein, es ist keine gute Idee in ein jar zu schreiben in dem die Anwendung läuft.
Man sägt auch nicht den Ast ab auf dem man sitzt.
 
Jep, danke hab ich mir schon gedacht!

Hätts auch so gemacht! Oder kann man da was mit dem JarFile-Objekt und dann als TempFile machen?
 
Ok ich hab das Konzept des Jar-Files nicht ganz verstanden.

Ich wollte eine kompakte Anwendung die ihre Konfigurationsdatei beinhaltet, so dass man das JAR überall hinpacken und veröffentlichen kann, wie es beliebt. So dass ich kein extra Ordner erstellen muss, kompakt eben.
Ich kann die Konfigurationsdatei natürlich je nach OS standardmäßig irgendwohin speichern, aber das ist auch nicht grad der Königsweg oder?

Ich werde es wohl oder übel als externe Konfigurationsdatei realisieren!???
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben