我编写了一个供他人使用的组件。
组件通过读取属性文件进行自我配置。
属性文件的路径可以由组件的用户指定。如果指定了路径,则可以使用FileInputStream
从绝对路径加载这些属性文件,如下所示:
Properties prop = new Properties();
InputStream input = new
FileInputStream("C:\\me\\prop\\sample.properties");
prop.load(input);
我可以按以下方式读取项目src\main\resources\properties
文件夹中的属性文件:
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(properties\sample.properties));
这些属性嵌入myjar.jar\properties\sample.properties
的我的jar中
我可以使用FileInputStream
来从相对路径读取属性,以便在属性加载器类中使用两种不同的方法吗?
答案 0 :(得分:0)
您可以使用相对路径,但是它将相对于Java应用程序的工作文件夹。在您的IDE(例如Eclipse)中,您可以编写:
new FileInputStream("src/main/resources/properties/sample.properties");
因为工作文件夹是项目的根文件夹。
找不到在jar中嵌入的文件。
如果您请求File对象,则可以指向外部文件或嵌入式资源:
File resource=new File(Ff.class.getResource("/org/json/CDL.class").getFile());