2012-04-13 8 views
0
reader = new CSVReader(new FileReader("file.txt")); 

Die Datei befindet sich im selben Verzeichnis wie die Java-Klasse. Jedenfalls bekomme ich FileNotFoundException.Eine Datei im gleichen Verzeichnis wie die Klasse lesen?

Was ist los?

+0

Sie können das aktuelle Verzeichnis mit der neuen Datei (".") Abrufen. GetAbsolutPath() für Debugging-Zwecke ... – wrm

+0

oder einfacher System.getProperty ("user.dir") –

Antwort

0

Relative Pfade sind relativ zum aktuellen Arbeitsverzeichnis. Wenn sich file.txt in Ihrem Codebeispiel nicht in Ihrem aktuellen Verzeichnis befindet, wird es nicht gefunden.

Seien Sie vorsichtig bei der Verwendung relativer Pfade in Ihrem Code. Das liegt daran, dass es zur Kompilierungszeit unmöglich ist zu sagen, was das aktuelle Arbeitsverzeichnis sein wird, wenn der Code ausgeführt wird.

Wenn die Datei Teil Ihrer Implementierung ist, speichern Sie sie im Klassenpfad und greifen Sie über ClassLoader.getResourceAsStream() darauf zu. Wenn es wirklich externe Daten sind, die der Benutzer ändern kann, geben Sie den Dateinamen in einer Konfiguration an.

0

Die Datei muss sich im Stammordner des Projekts befinden.

0

Ihre Anwendung wird nicht in diesem Verzeichnis ausgeführt. Sie müssten entweder einen absoluten (oder Klassenpfad-relativen) Pfad verwenden oder die Datei in das Verzeichnis verschieben, in dem die Anwendung ausgeführt wird. In Eclipse zum Beispiel wäre dies der Stammordner Ihres Projekts.

Verwandte Themen