我有一个使用一些txt文件的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
,那么我从getResourceAsStream
获取的InputStream将为空。
此外,如果我将类A保留为常规类(未继承),并定义类B如下:
Class B extends java.io.File
{
public InputStream getInputStream(String path) throws Exception
{
return new A().getInputStream(path);
}
}
返回的InputStream仍然为空。
问题是什么?有没有一种方法可以从继承了File
的类中访问文件?
谢谢。