Ich lasse es funktionieren, ohne auf "class" oder "ClassLoader" zu verweisen.
Angenommen, wir haben drei Szenarien mit dem Speicherort der Datei 'example.file' und Ihrem Arbeitsverzeichnis (in dem Ihre App ausgeführt wird) ist home / mydocuments / program / projects / myapp:
a) Ein Unterordner des Arbeitsverzeichnisses: myapp / res / files / example.file
b) Ein Unterordner, der nicht vom Arbeitsverzeichnis abstammt: projects / files / example.file
b2) Ein weiterer Unterordner, der nicht vom Arbeitsverzeichnis abstammt: program / files / example.file
c) Ein Stammordner: home / mydocuments / files / example.file (Linux; unter Windows ersetzen Sie home / durch C :)
1) Holen Sie sich den richtigen Weg: a) String path = "res/files/example.file";
b) String path = "../projects/files/example.file"
b2) String path = "../../program/files/example.file"
c)String path = "/home/mydocuments/files/example.file"
Wenn es sich um einen Stammordner handelt, beginnen Sie den Pfadnamen grundsätzlich mit einem führenden Schrägstrich. Wenn es sich um einen Unterordner handelt, darf vor dem Pfadnamen kein Schrägstrich stehen. Wenn der Unterordner nicht vom Arbeitsverzeichnis abstammt, müssen Sie ihn mit "../" aufrufen. Dies weist das System an, einen Ordner nach oben zu verschieben.
2) Erstellen Sie ein Dateiobjekt, indem Sie den richtigen Pfad übergeben:
File file = new File(path);
3) Sie können jetzt loslegen:
BufferedReader br = new BufferedReader(new FileReader(file));