2015-12-23 4 views
0

Программа хорошо работает с getResource, но после того, как она попала в файл jar, она имеет FileNotFoundException. Он не может найти test.conf.Как изменить getResource на getResourceAsStream

Мой код

URL url = getClass().getResource("test.conf"); 
File fin = new File(url.getPath()); 

FileInputStream fis = null; 
try { 
    fis = new FileInputStream(fin); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

Я думаю, что я могу решить эту проблему с помощью getResourceAsStream. Но я не уверен, как изменить getResource на getResourceAsStream.

+0

Стоп, учитывая, что ресурсы представляют собой файлы. Они не. Вместо чтения FIle, открыв FileInputStream, читайте непосредственно из InputStream, возвращаемого getResourceAsStream(). Если вы показали нам код, используя этот файл, мы могли бы помочь больше. –

+0

test.conf должен находиться в корневой папке – sidgate

+0

Я добавил более подробную информацию. –

ответ

0

Ваш пример подсказывает, что ваш код чтения уже работает с FileInputStream. Вы должны уметь работать с более общим элементом InputStream. Это позволит вам просто передать результат getResourceStream() в ваш код чтения, не беспокоясь о файлах.

Итак:

URL url = getClass().getResource("test.conf"); 
File fin = new File(url.getPath()); 

FileInputStream fis = new FileInputStream(fin); 

ReadResourceFromStream(fis); 

Изменения:

InputStream is = getClass().getResourceAsStream("test.conf"); 

ReadResourceFromStream(is); 
+0

Прошли ли вы с этим успехом? –

Смежные вопросы