Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen

NixWisser

Mitglied
Hallo,
nach mehreren Stunden werde ich langsam wahnsinnig, weil ich für dieses scheinbar simple Problem einfach keine Lösung finde:
Ich habe ein kleines Projekt (das später als jar-File exportiert werden soll) und in diesem Zusammenhang soll mithilfe des relativen Pfades ein Text aus einer Datei eingelesen werden, die sich im Resourcen-Ordner des Projrekts befindet. Bei Bildern ist das alles kein Problem, da übergebe ich einfach der entsprechenden read()-Funktion den Pfad mit
Java:
IrgendKlasse.class.getResource(pfad)
Beim FileReader, den ich zum lesen aus der Text-Datei verwende, kann man in dieser Weise den Pfad allerdings nicht übergeben, da FileReader nur String- oder File-Objekte akzeptiert. Alles was ich nun ausprobiert habe um den Pfad zu übergeben führte dazu, dass spätestens nach der Umwandlung des Projekts in ein Jar-File die Textdatei nicht mehr gefunden wird. Wäre echt toll, wenn mir da jemand helfen könnte. Wahrscheinlich isses total einfach, aber ich komm einfach nicht drauf...
Grüße!
 
Das ist auch nicht erforderlich, weil Du mit getResourceAsStream direkt einen InputStream erhalten kannst 🙂
Mmh, okay... und wie bekomme ich jetzt meinen Text das raus? Habe jetzt einen InputStream mit diesem Pfad (getResourceAsStream(pfad)) erzeugt und inInputStream in einen ObjectInputStream gesteckt, readObject() darauf angewendet und versucht das ganze in einen Strring zu parsen...bekomme allerdings schon für den Versuch den InputStream mit dem ObjectInputStream zu verbinden die Fehlermeldung: invalid stream header: D79CD7A2. Was bedeutet das? Oder war meine Strategie hier ohnehin falsch?
 
Ein ObjectInputStream erwartet Daten in einem bestimmten (Binary)Format und das ist bei einem Textfile natürlich nicht gegeben.

Und den Text kannst Du so lesen wie Du ihn sonst auch immer liest, z.B. mit einem BufferedReader. Du kannst also ein Konstrukt wie
new BufferedReader(new InputStreamReader(IrgendKlasse.class.getResourceAsStream("whatever/file.txt")))
erzeugen um da dann etwas zu lesen.
 
Ein ObjectInputStream erwartet Daten in einem bestimmten (Binary)Format und das ist bei einem Textfile natürlich nicht gegeben.

Und den Text kannst Du so lesen wie Du ihn sonst auch immer liest, z.B. mit einem BufferedReader. Du kannst also ein Konstrukt wie
new BufferedReader(new InputStreamReader(IrgendKlasse.class.getResourceAsStream("whatever/file.txt")))
erzeugen um da dann etwas zu lesen.
Ach, ja stimmt... alles klar, jetzt klappt's. 🙂
Vielen Dank!
 

Neue Themen


Zurück
Oben