将相对路径作为属性文件中的属性

时间:2014-10-30 15:46:00

标签: java file properties-file

所以我的问题不是如何从相对路径加载属性文件,而是如何将相对路径(相对于属性文件)声明为文件中的属性路径?

例如,我想要一个目录等。

|-etc
|---File1
|---File2
|---properties.

现在我想要内部属性,

file1 = ./File1
file2 = ./File2

但Java只会获得实际内容,如" ./ File1"

如何连接它以便Java获取属性并理解​​它应该与属性文件的位置相关?

所以,当你执行new File(properties.getproperty(file1))时,它会尝试在C:// etc / File1中查找文件,而不仅仅是./File1

2 个答案:

答案 0 :(得分:1)

您需要了解Java属性文件只是键/值对的列表。你如何解释这些价值取决于你。因此,您应该期望properties.getProperty("file1")会为您提供字符串"./File1" ...但您可以非常轻松地使用作为相对文件名:

File rootDirectory = ...; // However you get this
String relativePath = properties.getProperty("file1");
File file = new File(rootDirectory, relativePath);

答案 1 :(得分:0)

为了补充Jon的答案,你必须以某种方式将根文件夹设置为参考点。你的行

new File(properties.getproperty(file1))

将查找与包含该行的已编译Java类的.class文件的位置进行比较的相对路径。即使您正确地设置了相对于此的相对路径,如果您要将类一个包移动,代码也会中断。