Я змушую його працювати без будь-яких посилань на "class" чи "ClassLoader".
Скажімо, у нас є три сценарії з розташуванням файлу 'example.file' та вашим робочим каталогом (де виконується ваш додаток) home / mydocuments / program / projects / myapp:
a) Підпапка, що має потомство до робочого каталогу: myapp / res / files / example.file
b) Підпапка, не нащадка до робочого каталогу: Проекти / файли / 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"
b2) 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));