Измените вашу строку на:
final InputStream input = new FileInputStream(resource);
Пока вы это делаете, измените имя параметра resource
на path
или filePath
, поскольку это действительно так.
Два понятия (файл и ресурс) связаны, но не одинаковы.Ресурсом может быть файл на диске, но это также может быть файл внутри jar-файла или ресурс, загруженный с удаленного URL-адреса (используется не часто, но возможно).
Так как в вашем случае, вы знаете, что хотите получить доступ к файлу на диске, вам нужно использовать FileInputStream
.
См. также В чем разница между ресурсом, URI, URL, путем и файлом вJava? для более глубокого объяснения различий между файлами, ресурсами и связанными понятиями.