Попробуйте заменить следующее:
BufferedReader reader = new BufferedReader(new FileReader(filename));
с
BufferedReader reader = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream(filename)));
Это должно работать, поскольку входной файл находится в том же пакете, что и Reader
.
Обновление:
Я думаю, что проблема заключается в TeamData
.
readFile("skytest\\data.file")
Это неверный путь к файлу. Ни в файловой системе, ни в пути к классам.
Поскольку data.file находится в пути к классам, вы можете использовать getResourceAsStream
для его загрузки.
И, поскольку skytest является корневым каталогом (пакетом), "/skytest/data.file"
также будет здесь действительным (начальный /
означает относительный корень пакета). Или, поскольку файл находится в том же пакете, что и TeamData
, достаточно просто указать имя файла "data.file"
.
Итак, используйте следующее:
readFile("data.file")
И изменить следующее:
BufferedReader reader = new BufferedReader(new FileReader(requiredFile));
до
BufferedReader reader = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream(requiredFile)));
Кроме того, следующее действительно плохая практика (это называется глотанием исключения):
catch (IOException ioe) {
//do something about the exception here
return false;
}