Textdatei statt von Dateisystem aus .jar lesen

s3f3s

Mitglied
Hallo,

ich habe hier eine ziemlich verkorkste Software, die unter anderem unveränderliche Daten aus einer Textdatei aus dem Dateisystem liest. Diese Datei muss bei der Installation mit ausgeliefert werden.
Jetzt würde ich gern die Installation vereinfachen, indem ich diese Datei mit in die .jar hineinnehme, damit bei Änderungen nur die .jar ausgetauscht werden muss.

Was muss ich am Java-Code ändern, damit statt im Dateisystem in der .jar nach der Datei gesucht wird?

Prinzipiell könnte man natürlich die Informationen der Textdatei auch aus einer properties-Datei lesen. Dazu müsste ich allerdings alle Stellen finden, wo diese Informationen verwendet werden. Das ist hier sehr mühsam.
 

KonradN

Super-Moderator
Mitarbeiter
So Dateien, die dann vom Classpath gelesen werden, werden mit dem Begriff Ressourcen benannt.

-> In einem Projekt gehören diese Dateien in den resources Ordner. (Also bei maven / gradle wäre das src/main/resouces - aber das muss nicht immer getrennt sein, z.B. Eclipse will alles einfach in src haben.)
-> Gelesen wird dann per ClassLoader. Dazu kann man direkt auf der Klasse oder auf dem ClassLoader eine der Methoden getResource / getResourceAsStream nutzen. Üblich ist, dies auf der Klasse aufzurufen.

Beispiele:
Java:
getClass().getResourceAsStream("windows.fxml"); // gibt einen Stream zurück. Die Datei muss im gleichen "package" liegen wie die Klasse
MyClass.class.getResource("/images/icon.png"); // gibt eine URL zurück, die dann verwendet werden kann. Der Pfad ist absolut vom Resource Ordner aus zu sehen

Somit kannst du die Datei einfach als resource ins Projekt packen um dann den Stream für die Daten per getResourceAsStream zu bekommen.
 

s3f3s

Mitglied
Und wie behandle ich dann den Stream oder die URL weiter?
Ist das, was getResourceAsStream liefert, das gleiche wie
Java:
new FileInputStream(fileName)
?

Und was meinst du mit "Datei im gleichen Package wie die Klasse"? Im gleichen Verzeichnis des src-Ordners, muss dessen Ordnerstruktur im resources-Ordner nachgebildet werden, oder noch anders?
 

KonradN

Super-Moderator
Mitarbeiter
Ja, genau, Du kannst das new FileInputStream einfach durch getResourceAsStream ersetzen.

Und was meinst du mit "Datei im gleichen Package wie die Klasse"? Im gleichen Verzeichnis des src-Ordners, muss dessen Ordnerstruktur im resources-Ordner nachgebildet werden, oder noch anders?
Wenn Du die "relativen" Angaben haben willst, dann ja. Das kann Sinn machen, wenn Du wirkliche 1:1 Verbindungen hast. Das typische Beispiel, was mir hier einfällt, sind JavaFX Anwendungen mit fxml Dateien.

Aber sonst ist es einfacher, da eine eigene Struktur zu schaffen und immer absolute Angaben zu nutzen, also immer mit einem "/" zu starten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
curranux Ausgabe als Textdatei schreiben. Allgemeine Java-Themen 2
killig Textdatei einlesen und in HashMap speichern (duplikate entfernen) Allgemeine Java-Themen 12
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
M In Textdatei schreiben Allgemeine Java-Themen 3
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
J Bestimmte Zeile aus Textdatei auslesen Allgemeine Java-Themen 18
OnDemand Download Textdatei falsches Charset Allgemeine Java-Themen 1
K Textdatei als Objekt Allgemeine Java-Themen 4
O JAR Export Textdatei benutze Allgemeine Java-Themen 14
stylegangsta Mehrere html seiten einer Homepage einlesen und als Textdatei ausgeben Allgemeine Java-Themen 14
L Filewriter schreibt Zahlen in Textdatei Allgemeine Java-Themen 2
D Input/Output Zeilen werden "ignoriert" beim Einlesen aus einer Textdatei Allgemeine Java-Themen 3
T Synchronisation einer Textdatei im Groupshare Allgemeine Java-Themen 1
I String einer Textdatei anfügen Allgemeine Java-Themen 2
S Von Wav Datei mit Morsecode in Morsecode als Textdatei Allgemeine Java-Themen 2
R Duplikate aus einer Textdatei entfernen? Allgemeine Java-Themen 20
K Input/Output Ausgabe in Textdatei Allgemeine Java-Themen 7
Iron Monkey Inhalt von JTable in die Textdatei mit StringWidth schreiben Allgemeine Java-Themen 3
J Textdatei auslesen, die gerade benutzt wird Allgemeine Java-Themen 8
P Textdatei aus Ressourcen laden. Allgemeine Java-Themen 8
W Auslesen von Textdatei Allgemeine Java-Themen 16
M gleichzeitiger Zugriff auf eine Textdatei Allgemeine Java-Themen 6
S TextDatei in Panel anzeigen Allgemeine Java-Themen 10
X Textdatei auf gewünschte Anzahl der Zeilen kürzen Allgemeine Java-Themen 2
S Input/Output Latin-9 (ISO 8859-15) Textdatei einlesen Allgemeine Java-Themen 2
L Input/Output Textdatei in Objekte überführen? Allgemeine Java-Themen 4
F In mitten einer Textdatei schreiben Allgemeine Java-Themen 7
N Textdatei in Jar Problem Allgemeine Java-Themen 6
B Leerzeile in Textdatei Allgemeine Java-Themen 3
B Textdatei Zeilen auslesen Allgemeine Java-Themen 7
E BlueJ Daten in Textdatei schreiben Allgemeine Java-Themen 21
D große Textdatei filtern Allgemeine Java-Themen 13
K Textdatei komplett auslesen bis auf 2 Zeilen Allgemeine Java-Themen 2
H Textdatei (1GB) einlesen und verarbeiten Allgemeine Java-Themen 15
S String verschlüsselt in Textdatei speichern Allgemeine Java-Themen 3
E Text ans Ende einer Textdatei anfügen Allgemeine Java-Themen 2
Balbes Dateipfad in den JFileChooser aus Textdatei einlesen Allgemeine Java-Themen 7
S Textdatei mit externen Editor öffnen Allgemeine Java-Themen 8
G Textdatei einlesen unter Windows 7 Allgemeine Java-Themen 4
A Textdatei im Applet einlesen Allgemeine Java-Themen 2
C Textdatei einlesen Allgemeine Java-Themen 3
L Textdatei nach Wörter durchsuchen Allgemeine Java-Themen 3
Psypsy Bits in Textdatei und zurück Allgemeine Java-Themen 3
A Zeilen aus einer Textdatei löschen Allgemeine Java-Themen 6
ModellbahnerTT Problem: Schleife über Textdatei Allgemeine Java-Themen 5
W Auslesen einer Textdatei Allgemeine Java-Themen 2
D HILFE - Textdatei im jar auslesen Allgemeine Java-Themen 10
T Auslesen und schreiben in eine Textdatei.HILFE!HILFE! Allgemeine Java-Themen 23
G Mit FileWriter in Textdatei über jar Allgemeine Java-Themen 4
E textdatei über "öffnen mit" aufrufen Allgemeine Java-Themen 6
A Objekte in Textdatei weiterschreiben Allgemeine Java-Themen 5
M Textdatei auslesen / schreiben (Server) Allgemeine Java-Themen 9
D Textdatei umbenennen Allgemeine Java-Themen 2
C Software für Windows PC mit integierter Db oder Textdatei? Allgemeine Java-Themen 19
G 2 zeilen in textdatei beim auslesen verbinden Allgemeine Java-Themen 10
D Zeilenvorschub aus einer Textdatei rausnehmen Allgemeine Java-Themen 11
J Textdatei oder doch DB? Allgemeine Java-Themen 2
T GUI mit DB oder Textdatei? Allgemeine Java-Themen 11
G Textdatei in String einlesen Allgemeine Java-Themen 2
M Inhalt von Textdatei in Spinner Allgemeine Java-Themen 5
M neue Textdatei DOS/Unix-Format Allgemeine Java-Themen 11
E Zeilenumbruch in einer Textdatei Allgemeine Java-Themen 2
E Zeilenbumbruch in einer Textdatei Allgemeine Java-Themen 3
D Textdatei und JTextArea Allgemeine Java-Themen 5
M Worte aus Textdatei mit Java ersetzen Allgemeine Java-Themen 4
G Unterscheidung: Binär- oder Textdatei Allgemeine Java-Themen 13
B Zeilenumbruch bei Schreiben einer Textdatei Allgemeine Java-Themen 10
M Textdatei per Request lesen? Allgemeine Java-Themen 2
L Textdatei einlesen und verändern Allgemeine Java-Themen 3
M Problem: Textdatei einlesen Allgemeine Java-Themen 2
Y Einlesen & Ausgeben einer Textdatei _2 Allgemeine Java-Themen 3
Y Einlesen & Ausgeben einer Textdatei Allgemeine Java-Themen 5
M Fehler beim öffnen einer 20 mb Textdatei im sign. Applet Allgemeine Java-Themen 5
byte Erste Zeile einer Textdatei entfernen Allgemeine Java-Themen 5
G Eingaben in Textdatei speichern Allgemeine Java-Themen 5
P Einlesen einer Textdatei Allgemeine Java-Themen 8
P Problem beim "spliten" eine Textdatei Allgemeine Java-Themen 3
T jar + Textdatei Allgemeine Java-Themen 2
X Bestimmtes Muster in Textdatei verändern Allgemeine Java-Themen 13
G Inhalt einer Textdatei in eine AWT List schreiben Allgemeine Java-Themen 3
G auslesen einer Textdatei Allgemeine Java-Themen 2
E Source-Code aus einer Textdatei kompilieren und ausführen Allgemeine Java-Themen 4
D Textdatei zeilenweise einlesen Allgemeine Java-Themen 2
ReinerCoder Case statt if else Abfragen?! Allgemeine Java-Themen 8
M Bei String.format ein Komma statt einem Punkt ausgeben lassen Allgemeine Java-Themen 1
A was kann ich nehmen als statt IsHitBy? Allgemeine Java-Themen 3
das_leon Komma statt Punkt Allgemeine Java-Themen 10
F Java moved Files statt sie zu kopieren Allgemeine Java-Themen 12
D Class<CAP#1> statt Class<...> Allgemeine Java-Themen 5
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
P Datentypen float mit komma statt punkt möglich? Allgemeine Java-Themen 6
D Shortcut statt Datei einlesen Allgemeine Java-Themen 2
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
H SwingWorker statt Thread für einen Server Allgemeine Java-Themen 2
R Dateiarbeit: In Datei weiterschreiben statt überschreiben Allgemeine Java-Themen 5
P SFTP mit ppk key statt openssh key Allgemeine Java-Themen 4
Meldanor For-Schleifen - byte statt int? Allgemeine Java-Themen 11
S indize statt split() Allgemeine Java-Themen 10
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben