Java IO对于位于类路径上或离开类路径的文件
我有一个从固定位置获取属性的现有方法。此方法还允许我指定覆盖以使用不同的属性文件。我希望能够在保留当前功能的同时指定类路径上的文件。我将如何修改这个来实现这个功能?Java IO对于位于类路径上或离开类路径的文件
protected Properties getProperties(String pathToPropertiesFile) throws IOException {
if (pathToPropertiesFile == null) {
pathToPropertiesFile = "/etc/machineProperties.properties";
}
FileInputStream inputStream = new FileInputStream(pathToPropertiesFile);
Properties props = new Properties();
props.load(inputStream);
return props;
}
目前为止,我发现的所有IO实用程序仅适用于类路径中的文件或具有绝对路径的文件。
加载类路径中的文本文件。从here获取更多上下文。
InputStream in = this.getClass().getClassLoader()
.getResourceAsStream("SomeTextFile.txt");
如果您传递不在类路径上的资源的绝对路径,则返回null。 – 2014-11-20 22:12:16
@MikeRylander是的,这就是它在Javadoc https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)中所说的内容。这是一个问题,还是你只是记下它? – KyleM 2014-11-20 22:32:46
我需要在读取不在类路径中的文件时保留当前存在的功能。 – 2014-11-20 23:21:46
听起来像多态的工作。 – 2014-11-20 20:42:30