Saya membuatnya bekerja tanpa referensi ke "class" atau "ClassLoader".
Katakanlah kita memiliki tiga skenario dengan lokasi file 'example.file' dan direktori kerja Anda (tempat aplikasi Anda dijalankan) adalah home / mydocuments / program / proyek / myapp:
a) Sub folder yang turun ke direktori kerja: myapp / res / files / example.file
b) Sub folder tidak turun ke direktori kerja: proyek / file / example.file
b2) Sub folder lain yang tidak turun ke direktori kerja: program / file / example.file
c) Folder root: home / mydocuments / files / example.file (Linux; di Windows ganti home / dengan C :)
1) Dapatkan jalan yang benar: 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"
Pada dasarnya, jika itu adalah folder root, mulailah nama path dengan slash terkemuka. Jika ini adalah sub folder, tidak boleh ada garis miring sebelum nama path. Jika sub folder tidak turun ke direktori kerja Anda harus cd ke sana menggunakan "../". Ini memberitahu sistem untuk naik satu folder.
2) Buat objek File dengan melewati jalan yang benar:
File file = new File(path);
3) Sekarang Anda baik untuk pergi:
BufferedReader br = new BufferedReader(new FileReader(file));