2013-03-07 7 views
10

Ich frage mich, wie man einen relativen Pfadnamen zu einer Textdatei spezifiziert, die in meinem src-Ordner eines Java-Projekts gespeichert ist. Ich möchte eine Zeichenfolge mit dem Pfad dieser Textdatei speichern. Wenn ich beispielsweise example.txt im src-Ordner meines Java-Projekts hätte, wie würde ich dann den relativen Pfad finden? Ich tue das auch in meinem Hauptteil, also habe ich Probleme mit .getResource(). Wie würde ich das tun? Vielen Dank.Java - relativer Pfad der Textdatei in main?

Meine Dateien Pfad ist als /MyProject/src/data.txt von den Eigenschaften in Eclipse gefolgt

Ich habe versucht:

String path = "/MyProject/src/data.txt" ;

Aber das funktioniert nicht?

+1

Die Datei muss sich im relativen Pfad der java/jar-Datei befinden, die ausgeführt wird, nicht der Quellen. –

+0

verwenden Sie Android? oder reines Java? – niculare

+0

einfaches altes Java. – zProgrammer

Antwort

15

Wenn Sie Eclipse verwenden, platzieren Sie Ihre Textdatei im Stammverzeichnis des Projektordners außerhalb der Ordner /src und /bin. Es sollte nun direkt über einen relativen Pfad erreichbar sein.

Wenn Sie eine Datei in src-Ordner zugreifen möchten, müssen Sie die /src/ Präfix vor dem Dateipfad/Name

+1

Das ist, was ich gesucht habe. Es wurde außerhalb des src-Ordners platziert. – zProgrammer

+0

Sie sind willkommen – chiffa

+0

In Fenster a.txt Datei in src-Ordner verwenden „src/a.txt“ nicht „/src/a.txt“ zugreifen –

3

Der Pfad zu dem Verzeichnis ist relativ anhängen Sie die „java“ command.e.g auszuführen.

/opt/projects/myproject>$ java -cp <whatever your classpath is that contains your class files> com.mycompany.mypackage.MyJavaClass 

in diesem Fall die MyJavaClass Dateien relativ zum Verzeichnis finden würde
/opt/projects/myproject

Es gibt einen anderen Weg, dies zu tun, wenn man so will: Sie laden Ressourcen verwenden, die sind über den Klassenpfadmechanismus gefunden.

getClass().getResource("foo.txt"); 

können Sie diesen Beitrag für weitere Informationen siehe

Preferred way of loading resources in Java

+1

Sie nicht verwenden können, „dieses“ in einer statischen Methode – zProgrammer

+0

@zProgrammer I aktualisiert: entferne einfach das "dies" – javadba

7

Verwenden Sie die src/ Präfix vor dem Dateipfad/Name.

String path = "src/data.txt";