Relativer Pfad auf Datei im Projektordner

fhaslbs

Mitglied
Hallo zusammen

Ich habe ein kleines Programm geschrieben welches u.a ein .txt File einliest.
Diese Datei liegt in einem unterordner des Projektordners:

Projektordner
-test.java
-Folder
-MyTextFile.txt

Wie greife ich nun von meinem test. java in das MyTextFile.txt zu? Ich habe es mit Folder/MyTextFile.txt versucht, was meiner Meinung nach logisch währe, doch es wird jedes mal eine IO-Exception ausgelöst.

Wenn ich einen absoluten Pfad angebe (z.B C:/MyTextFile.txt) funktioniert alles wunderbar.

Vielen Dank im voraus!
 
wenn du den Ordner kennst kannst du auch so vorgehen:

File ordner=new File("Ordnername");
File[] fileListe=ordner.listFiles();

und dann kannst du dir das File aus dem Array holen

wenn dus mit einem Pfad machen willst geht es so

File ordner=new File("test//test.txt");
System.out.println(ordner.exists()); //true
 
Zuletzt bearbeitet:
So wie ich das verstanden habe sind sowohl Ordner als auch Datei bekannt.
File ordner=new File("Ordnername");
File[] fileListe=ordner.listFiles();
Das funktioniert nur, wenn die Anwendung aus dem Verzeichnis in dem sich auch "Ordnername" befindet gestartet wird.
 
Vielen Dank erstmal für die Antworten - ich habe es nun mit der Methode von pl4gu33 versucht.

wenn du den Ordner kennst kannst du auch so vorgehen:

File ordner=new File("Ordnername");
File[] fileListe=ordner.listFiles();

und dann kannst du dir das File aus dem Array holen

wenn dus mit einem Pfad machen willst geht es so

File ordner=new File("test//test.txt");
System.out.println(ordner.exists()); //true


Merkwürdig ist, dass ich eine NullPointerException bekomme wenn ich meinem BufferedReader das File übergeben möchte
[JAVA=42]BufferedReader in = new BufferedReader(new FileReader(fileListe[0]))[/code]

Das würde ja bedeuten dass der dankt das der Order gar nicht existiert.

Wo würdet ihr eigentlich ein .txt File hinpflanzen, wenn ihr es schlussendlich mit dem Programm zusammen mitliefern wollt?
 
Hi,
was bekommst du wenn du in deiner Datei test.java folgende Test-Funktion aufrufen lässt ?

Java:
	public static void testPath(){
	File file = new File("Folder/MyTextFile.txt");
	System.out.println(file.getAbsolutePath());
	}
 
Merkwürdig ist, dass ich eine NullPointerException bekomme wenn ich meinem BufferedReader das File übergeben möchte
[JAVA=42]BufferedReader in = new BufferedReader(new FileReader(fileListe[0]))[/code]

Das würde ja bedeuten dass der dankt das der Order gar nicht existiert.

Wo würdet ihr eigentlich ein .txt File hinpflanzen, wenn ihr es schlussendlich mit dem Programm zusammen mitliefern wollt?
Wie gesagt, hängt der Erfolg dieser Vorgehensweise davon ab, von welchem Verzeichnis aus die Anwendung gestartet wird und wo sich die File erzeugende Klasse befindet.

Wenn das txt-File nur gelesen werden soll, würde ich es mit dem Code in ein jar exportieren und dann per getResourceAsStream(...) auslesen.
 
Java:
		File ordner=new File("test");
		File[] ordnerListe=ordner.listFiles();
		File datei=ordnerListe[0];
		try {
			BufferedReader in  = new BufferedReader(new FileReader(datei));
			String zeile=in.readLine();
			System.out.println(zeile);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

also bei mir steht dann im Syso "hallo" was auch die erste Zeile meiner TXT ist.
wenn die Datei auch wirklich in dem Ordner ist, wo sie hingehört ,... s.h. Michaels Beitrag

mit anderen Worten wenn du nen JAR erstellst musst du beim JAR auch immer den Ordner dabei haben, wo die Textdatei drin ist^^
 
Zuletzt bearbeitet:
Hi,
was bekommst du wenn du in deiner Datei test.java folgende Test-Funktion aufrufen lässt ?

Java:
	public static void testPath(){
	File file = new File("Folder/MyTextFile.txt");
	System.out.println(file.getAbsolutePath());
	}

C:\iMacros\Folder\MyTextFile.txt

Das mit dem getResourceAsStream gefällt mir.

- gibt es eigentlich eine vordefinierte methode umd die blöden \ von windows automatisch mit / zu ersetzen soblad ich den getAbsolutePath() einsetze?
 

Neue Themen


Zurück
Oben