Я получаю его работать без каких-либо ссылок на «класс» или «ClassLoader».
Допустим, у нас есть три сценария с расположением файла example.file и вашим рабочим каталогом (где выполняется ваше приложение) home / mydocuments / program / projects / myapp:
a) Потомок подпапки к рабочему каталогу: myapp / res / files / example.file
б) подпапка, не являющаяся потомком рабочего каталога: projects / files / example.file
b2) Другая подпапка, не являющаяся потомком рабочего каталога: program / files / example.file
c) корневая папка: home / mydocuments / files / example.file (Linux; в Windows замените home / на C :)
1) Получить правильный путь: а) String path = "res/files/example.file";
б) String path = "../projects/files/example.file"
б2) String path = "../../program/files/example.file"
в)String path = "/home/mydocuments/files/example.file"
По сути, если это корневая папка, начните путь с косой черты. Если это подпапка, перед именем пути не должно быть косой черты. Если подпапка не является потомком рабочего каталога, вы должны перейти к нему, используя «../». Это говорит системе перейти на одну папку.
2) Создайте объект File, передав правильный путь:
File file = new File(path);
3) Вам теперь хорошо идти
BufferedReader br = new BufferedReader(new FileReader(file));