java-Datei Lesen, aus relativen Pfad in der Projekt-und .jar

Habe ich versucht:

public class FilePath {

    public File return_path () {

        URL url = getClass().getResource("file.txt"); 
        File file = new File(url.getPath()); 
        return file;
    }
}

Wenn ich es drucken, die Ausgabe ist ein Weg, wie diese: "/media/dates/%20uni%c3%a0/Java/project%20java%20201/SearchInFiles/build/classes/searchinfiles/hello.txt"

Ich habe diese Methode, um nicht neu zu definieren, jedes mal den Pfad der Datei, die schließlich ein .jar haben werden zu Lesen.

Könnte es ein problem mit den seltsamen Zeichen?

Btw, wenn ich rufen Sie aus der main-Klasse:

public static void main(String[] args) {

        FilePath path = new FilePath(); 
        File file = path.return_path();
        System.out.println (file);

try{
BufferedReader input = new BufferedReader(new FileReader(file));

            String line;

    int i = 0;
    while ((line = input.readLine ()) != null)
    {
         System.out.println(line);
    }
            input.close();
        } 
        catch(Exception ex){
           System.err.println("Error: " + ex.getMessage());
        }
}

Habe ich die "Datei nicht vorhanden" - Fehler.

Wie kann ich es lösen?
Dank

  • Haben Sie einen Blick auf die ähnlichen Fragen auf der rechten Seite....
  • warum nutzen Sie nicht getClass().getResourceAsStream(fileName) direkt?
  • das funktioniert umso besser, vielen Dank
InformationsquelleAutor Frank | 2013-05-09
Schreibe einen Kommentar