我想从项目Test1(src / Test1.java)中读取项目Test的bean.properties文件(在src / conf / bean.properties中)。我已经通过java构建路径和使用
从Test1引用了TestProperties prop = new Properties();
prop.load(new FileInputStream("src/conf/bean.properties"));
我正在
java.io.FileNotFoundException: src\conf\bean.properties (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
答案 0 :(得分:1)
考虑将属性文件放在类路径中。在Eclipse中它可能看起来像这样
Project1
+- src
+- bean.properties
Project2
+- src
+- ReadPropertiesTest.java
然后转到Project2的属性,然后转到“Java Build Path”,然后转到“Projects”并将Project1添加到列表中。
现在您可以使用类似这样的类加载器来读取您的文件:
InputStream stream = ReadPropertiesTest.class.getClassLoader()//
.getResourceAsStream("/bean.properties");
Properties properties = new Properties();
properties.load(stream);
// ... closing code here
请注意属性文件名称前面的斜杠/
。
答案 1 :(得分:0)
以下是读取属性文件的示例代码: -
public class ReadPropertiesFile {
public static void main(String[] args) {
try {
File file = new File("test.properties");
FileInputStream fileInput = new FileInputStream(file);
Properties properties = new Properties();
properties.load(fileInput);
fileInput.close();
Enumeration enuKeys = properties.keys();
while (enuKeys.hasMoreElements()) {
String key = (String) enuKeys.nextElement();
String value = properties.getProperty(key);
System.out.println(key + ": " + value);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
或者您可以使用: -
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();
答案 2 :(得分:0)
这样的事情是不可能的!您必须指定绝对路径来访问类路径外部的文件。 每当你写" src / conf / bean.properties"它指定该文件的相对路径。这样的文件只能在类路径中搜索。