||| Textdateien aus dem eigenen Projekt lesen.

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
HeY Forum,
noch ne Frage: Ich möchte Textdateien aus einem Package lesen welches in meinem Projekt liegt. Das funktioniert auch prächtig, solange ich nicht ein jar draus mache.

Code:
_bufferedReader = new BufferedReader(new FileReader(VariableReader.class.getResource("/model/utils/variables/variables1.txt").getPath()));

Der VariableReader ist ne eigene Instanz von mir....

Wenn ich nun nen Antbuild mache um noch weitere jars einzubinden die ich benötige und dann an die Stelle komme, wo ich das dan als jar starte sagt mir die Konsole, das sie die Datei nicht finden kann....

Es wäre nett, wenn jemand nen Tip hat, wie ich das machen kann, damit die Pfade immer stimmen und die Dateien gefunden werden.

???:L
 

Wildcard

Top Contributor
Anonymous hat gesagt.:
Wenn ich nun nen Antbuild mache um noch weitere jars einzubinden die ich benötige und dann an die Stelle komme, wo ich das dan als jar starte sagt mir die Konsole, das sie die Datei nicht finden kann....
ummm.... jar in jar funktioniert nicht so ohne weiteres.
 

Zunera

Aktives Mitglied
Hi,

bei mir funktionierts wie folgt (sowohl "normal" als auch das Projekt als JAR):

Code:
InputStreamReader fstream = new InputStreamReader(this.getClass().getResourceAsStream(filename));
BufferedReader br = new BufferedReader(fstream);

wobei in deinem Fall natürlich filename="/model/utils/variables/variables1.txt"
Gib bescheid, wenns klappt :wink:
 
G

Guest

Gast
HeY Wildcard, hast Du nen Tip wie man sowas macht? Soll ich nen Jar erstellen und die Textdateien dort reinpacken und das einbinden oder....?


THX!
 

Wildcard

Top Contributor
Du kannst das alles in deine jar packen, aber es dürfen wie gesagt nicht mehrere jars sein.
Wenn das bei dir der Fall ist musst du entweder alle jars entpacken und die Dateien dann in deine jar, oder die jars extern legen und referenzieren.
 
G

Guest

Gast
Also von der Struktur her habe ich mein Projekt, in das ich noch foxtrot.jar und das swing-layout1.0-jar über ein Antbuild zur Verfügung stelle...

Mein Projekt:
-model
-/Model/utils/variables/bla.txt
-controller
-view
...
...
...

So in etwa ist die Projektstruktur. Die beiden oben gennaten Jars sind über den Buildpath mit integriert. Wenn ich jetzt aber ein Build draus mache "export jar" aus Eclipse raus dann findet die vm ntürlich die beiden Jars nicht und macht schon nen Abgang....
Daher hatte ich ein MiniAntScript geschrieben was die Jars einbindet.


Code:
<?xml version="1.0"?>
 
<project name="BingoLogConverter" default="CreateExecutableJarFileWithExternalLibrary">
	<target name="CreateExecutableJarFileWithExternalLibrary">
		<jar destfile="/home/quadro/Desktop/BingoLog.jar">
			<zipfileset dir="." prefix="" />
			<zipfileset src="/home/quadro/Desktop/swing-layout-1.0.1.jar" />
			<zipfileset src="/home/quadro/Desktop/foxtrot.jar" />		
			<manifest>	
				<attribute name="Main-Class" value="main/Main" />
				
			</manifest>
		</jar>
	</target>
</project>

Das funktioniert ja auch aber ich weiß nicht wie ich das mit den Textdateien anstellen soll. Wie gesagr, nen jar machen die Dateien rein und auch über das Script laden? Wie rufe ich die Dateien aber dann auf, bzw. bekomme die Pfade?

Hast Du da nen Codeschnipsel parat? Ich hoffe mal meine Erläuterung hilft Dir weiter!


THX!
 

Wildcard

Top Contributor
hmm, was soll ich dazu sagen. Sofern die resource über den Classpath erreichbar ist, und der Pfad stimmt ist dein Vorgehen richtig.
 
G

Guest

Gast
hmmmm was soll ich jetzt dazu sagen.... ??? :L Ich poste mal die Klasse in der das alles passiert, vielleicht fällt Dir ja was auf....:

Code:
package model.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;

public class VariableReader {
	private BufferedReader _bufferedReader;
	private Vector _tempVariables;
	private String _tempString = ""; 
	private String[] _variables;
	
	// Reads in the datafile choosen by the path of the file
	public void openInputStream(String id) throws FileNotFoundException 
	{
	
		if(id.equalsIgnoreCase(FilterConstants.VARIABLE_1))
		{
			_bufferedReader = new BufferedReader(new FileReader(VariableReader.class.getResource("/model/utils/variables/variables1.txt").getPath()));
		}
		
		if(id.equalsIgnoreCase(FilterConstants.VARIABLE_2))
		{
			_bufferedReader = new BufferedReader(new FileReader(VariableReader.class.getResource("/model/utils/variables/variables2.txt").getPath()));
		}
		
		if(id.equalsIgnoreCase(FilterConstants.VARIABLE_3))
		{
			_bufferedReader = new BufferedReader(new FileReader(VariableReader.class.getResource("/model/utils/variables/variables3.txt").getPath()));
		}
	}
	
	// Reads the data out of the file
	public String[] readContentFromFile() throws IOException 
	{
		_tempVariables = new Vector();
		_variables = null;

		while ((_tempString = _bufferedReader.readLine()) != null) 
		{
			_tempVariables.add(_tempString);
		}

		_bufferedReader.close();
		_tempString = "";
		
		
		_variables = new String[_tempVariables.size()];
		
		for(int i=0;i<_variables.length;i++)
		{
			_variables[i] = (String)_tempVariables.get(i);
		}

		return _variables;
	}
}


THX!
 

Zunera

Aktives Mitglied
Hi nochmal,
ich hab nach dem Kommentar von Wildcard mal bei mir deine Zeile ausprobiert - und die funktioniert bei mir NICHT wenn ich das Projekt als JAR exportiere. Sonst geht deine Variante auch. Ich weiß nicht, ob du es mal mit meinem Tipp probiert hast oder nach Wildcards Einwurf gleich die Segel gestrichen hast?! :?
 

Wildcard

Top Contributor
versuch mal als Pfad "variables/variables2.txt". Dann wird vom package deiner verwendeten Klasse aus gesucht.
 
G

Guest

Gast
Danke Jungs,
hab den Code von Zunera ausprobiert und das läuft. Wenn ich noch ne ruhige Minute finde, dann probier ich Wildcards version auch noch mal aus und poste das als laufend oder nicht laufend hier rein!


THX! War mir mal wieder eine Freude!


:applaus:
 

Wildcard

Top Contributor
Mit gleichem Pfad?
Die beiden Methoden sollen eigentlich genau das gleiche machen.
Der einzige Unterschied den ich sehe ist Zunera getClass benutzt (so mach ich das auch immer),
getClass().getResourceAsStream(filename)
und du VariableReader.class. (Was ich noch nie versucht habe)
Kannst du mal überprüfen ob das den Unterschied macht, den sonst kann ich mir das nicht erklären ???:L
 

Zunera

Aktives Mitglied
Hi Gast,
gut dass du es noch probiert hast :wink:

@Wildcard: Das macht keinen Unterschied, funktioniert auch mit VariableReader.class.<usw>
Bis zum nächsten Mal :lol:
 

Wildcard

Top Contributor
Javainsel hat gesagt.:
Um Ressourcen wie Grafiken oder Konfigurationsdateien aus Jar-Archiven zu laden, ist die Methode getResourceAsStream() beziehungsweise getResource() ideal. Sie sind Methoden des Class-Objekts. getResource() gibt ein URL-Objekt für die Ressource zurück. Da oft der Inhalt des Datenstroms interessant ist, liefert getResourceAsStream() einen InputStream. Intern wird aber nichts anderes gemacht, als getResource() aufgerufen und mit openStream() ein Eingabe-Objekt geholt. Nur getResourceAsStream() fängt eine eventuelle IOException ab und liefert dann die Rückgabe null.
 

Zunera

Aktives Mitglied
Jo, des stimmt... und wenn man genau liest und dann noch etwas nachdenkt erhält man tatsächlich das Äquivalent mit .getResource(...) statt .getResourceAsStream(...) wie folgt:
Code:
 BufferedReader br = new BufferedReader(new InputStreamReader(VariableReader.class.getResource(filename).openStream()));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
C Input/Output Textdateien vergleichen Allgemeine Java-Themen 3
E Best Practice LaTeX aus Textdateien einlesen und bearbeiten Allgemeine Java-Themen 4
Bluedaishi Textdateien auslesen Allgemeine Java-Themen 12
K Input/Output Integer.parseInt() an Textdateien anwenden Allgemeine Java-Themen 2
S Mailvorlagen aus Textdateien Allgemeine Java-Themen 5
H2SO3- einlesen textdateien verschiedener codierungen Allgemeine Java-Themen 6
Weiti Programm zum erstellen einer tabelle aus textdateien Allgemeine Java-Themen 24
G Drag&Drop von Textdateien Allgemeine Java-Themen 13
M Mit Textdateien arbeiten Allgemeine Java-Themen 5
T Addons im eigenen Programm Allgemeine Java-Themen 1
E Eigenen "Aufzählungstyp" erstellen - mit enum ? Allgemeine Java-Themen 18
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
dereki2000 Eigenen Zeichensatz benutzen Allgemeine Java-Themen 7
B JAVA Prozesse in einer eigenen Anwendung laufen lassen Allgemeine Java-Themen 9
J Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not) Allgemeine Java-Themen 6
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
C Bufferoverflow beim eigenen simpeln Programm Allgemeine Java-Themen 4
F Grundrechenarten mit eigenen Typen Allgemeine Java-Themen 9
D Eigenen Objekt Pool Allgemeine Java-Themen 15
A Eigenen OutputStream schreiben und verwenden Allgemeine Java-Themen 9
D eigenen eventListener Allgemeine Java-Themen 5
X Duplikate aus eigenen Datentypen entfernen Allgemeine Java-Themen 14
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
R Eigenen Comparator schreiben ? Allgemeine Java-Themen 10
G Kennt jemand gute Produkte zum Lizensieren der eigenen Apps? Allgemeine Java-Themen 6
G Fragen zum eigenen Scheduler Allgemeine Java-Themen 4
thE_29 Java Prozesse der eigenen JVM Allgemeine Java-Themen 12
Escorter Eigenen Listener schreiben Allgemeine Java-Themen 3
C Eigenen Layout Manager schreiben Allgemeine Java-Themen 7
P Klasse über eigenen Classloader laden: SecurityException Allgemeine Java-Themen 11
M eigenen Desktop erzeugen Allgemeine Java-Themen 3
G hat jeder thread seinen eigenen stacktrace? Allgemeine Java-Themen 2
F Eigenen E-MailClient als Standart definieren Allgemeine Java-Themen 7
F "source not found" in eigenem Projekt mit eigenen Allgemeine Java-Themen 2
D close Problem bei meinem eigenen ToolTip Allgemeine Java-Themen 2
F Dateien auf dem eigenen Server verändern? Allgemeine Java-Themen 3
M Eigenen Datentyp erstellen Allgemeine Java-Themen 4
N Konsole im eigenen Java-Programm Allgemeine Java-Themen 4
N warning beim compilieren des eigenen TableRenderers Allgemeine Java-Themen 5
G Fenster durch eigenen Button minimieren Allgemeine Java-Themen 6
Zrebna Wie ermittelt man alle testbaren (zu testenden) Klassen in seinem Maven-Projekt? Allgemeine Java-Themen 23
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
Jose05 mit 2 - 3 Personen an einem Projekt coden Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
S Microservice Projekt verwalten Allgemeine Java-Themen 22
alinakeineAhnungv Hilfe bei einem Straßenbahn-Projekt von mir Allgemeine Java-Themen 18
O community projekt Allgemeine Java-Themen 9
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
pkm Warnungen in einem Drools-Projekt unterdrücken? Allgemeine Java-Themen 1
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
DonMalte Ambitioniertes Projekt für Einsteiger & Motivierte Allgemeine Java-Themen 0
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
M Brainstorming für mein Projekt Allgemeine Java-Themen 30
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
J Alle Unit Tests in Maven Modul Projekt ausführen Allgemeine Java-Themen 7
xYurisha Eclipse, Projekt beschädigt! Allgemeine Java-Themen 6
P BlueJ BlueJ Gloop City Projekt Allgemeine Java-Themen 0
R Praktikums Projekt Java vs MySQL Allgemeine Java-Themen 91
H Projekt Quadraturverfahren Rechner Allgemeine Java-Themen 2
S WebApplikation Projekt in Firma Allgemeine Java-Themen 2
S Eclipse Github Projekt in eigenes Projekt einbinden und nutzen Allgemeine Java-Themen 13
T iText mit eclipse richtig in Java-Projekt einbinden Allgemeine Java-Themen 2
J Java Projekt, Online-Datenabfrage, Visualisierung Allgemeine Java-Themen 3
markuskat Erste Schritte JavaEE WebApplication - Erstes Projekt Allgemeine Java-Themen 16
O Compiler-Fehler Wie kompiliere ich dieses Alt-Projekt ? Allgemeine Java-Themen 9
P Eclipse Projekt anlegen macht Problem Allgemeine Java-Themen 1
N Eclipse Projekt von GitHub in bestehendes Projekt einbinden Allgemeine Java-Themen 13
G Mein PDF Projekt mit iText Allgemeine Java-Themen 2
G Kleines Projekt Allgemeine Java-Themen 2
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
M Maven Dependency aus Projekt nicht aus Repo Allgemeine Java-Themen 3
S Erstes größeres Java Projekt: Etiketten Allgemeine Java-Themen 3
M Eclipse libgcrypt für window in java Projekt einbinden Allgemeine Java-Themen 1
N Kleines GUI/Sortier Projekt für die Uni Allgemeine Java-Themen 11
M Eclipse Eine xhtml aus einem JSF Projekt starten Allgemeine Java-Themen 2
A Android App Projekt Allgemeine Java-Themen 0
I Zu zweit an einem Projekt? Allgemeine Java-Themen 1
M SQL Datenbank in JAVA Projekt Allgemeine Java-Themen 3
U BlueJ NXT Projekt programmieren Allgemeine Java-Themen 0
C Projekt Realisierung Allgemeine Java-Themen 7
J C++ Projekt (QT) in Java mit Klassen (nicht imperativ) nutzen (BridJ? JavaCPP? SWIG? JNA? JNI?) Allgemeine Java-Themen 2
A Ausführbare Java-Datei aus Projekt und Datenbank Allgemeine Java-Themen 3
K Code zu einem Projekt entschluesseln Allgemeine Java-Themen 15
A mini Projekt Allgemeine Java-Themen 4
U Eclipse Java Projekt - Webservice einbinden Allgemeine Java-Themen 7
I Projekt wird nicht erstellt Allgemeine Java-Themen 2
R Aus Eclipse Projekt ein UML erzeugen Allgemeine Java-Themen 3
V System.out.println an jeder Stelle im Projekt löschen Allgemeine Java-Themen 4
M JSF-Projekt, Datasourceproblem Allgemeine Java-Themen 7
B Großes Projekt "gut" schreiben Allgemeine Java-Themen 22
maestr0 Programmatische Java Projekt Erstellung Allgemeine Java-Themen 2
J Projekt mit mehreren Einzelprogrammen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben