У меня есть JAR-файл, который использует некоторые текстовые файлы. Для их получения используется функция Class.getResourceAsStream
.
Class A
{
public InputStream getInputStream(String path) throws Exception {
try {
return new FileInputStream(path);
} catch (FileNotFoundException ex) {
InputStream inputStream = getClass().getResourceAsStream(path);
if (inputStream == null)
throw new Exception("Failed to get input stream for file " + path);
return inputStream;
}
}
}
Этот код работает отлично.
Проблема в том, что если я определю класс A как extends java.io.File
, InputStream, который я получаю из getResourceAsStream
, будет нулевым.
Также, если я оставлю класс A как обычный класс (не унаследованный), и определю класс B как:
Class B extends java.io.File
{
public InputStream getInputStream(String path) throws Exception
{
return new A().getInputStream(path);
}
}
возвращенный InputStream по-прежнему равен нулю.
В чем проблема? Есть ли способ получить доступ к файлу из класса, который наследует File
?
Спасибо