将相对路径作为属性文件中的属性
Posted
技术标签:
【中文标题】将相对路径作为属性文件中的属性【英文标题】:Have Relative Paths as properties in property file 【发布时间】:2014-12-26 18:12:15 【问题描述】:所以我的问题不是如何从相对路径加载属性文件,而是如何将相对路径(相对于属性文件)声明为文件中的属性路径?
例如,我想要一个目录等
|-etc
|---File1
|---File2
|---properties.
现在我想要一些类似的属性,
file1 = ./File1
file2 = ./File2
但 Java 会简单地获取像“./File1”这样的实际内容
我如何连接它,以便 Java 获取属性并理解它应该与属性文件所在的位置相关?
因此,当您执行new File(properties.getproperty(file1))
时,它将尝试在 C://etc/File1 中查找文件,而不仅仅是 ./File1
【问题讨论】:
如何加载属性文件? 使用工厂模式或包装模式怎么样?你打算用一些 API 来使用你的 File 实例吗? 有些人扩展了 File.class。 ***.com/questions/11513327/java-myfile-extends-file 【参考方案1】:您需要了解 Java 属性文件只是键/值对的列表。你如何解释这些价值观取决于你。所以你应该期望properties.getProperty("file1")
会给你字符串"./File1"
...但是你可以使用它作为一个相对文件名很容易:
File rootDirectory = ...; // However you get this
String relativePath = properties.getProperty("file1");
File file = new File(rootDirectory, relativePath);
【讨论】:
【参考方案2】:为了补充 Jon 的回答,您必须以某种方式将根文件夹设置为参考点。你的线路
new File(properties.getproperty(file1))
将查找与包含该行的已编译 Java 类的 .class 文件的位置相比较的相对路径。即使您正确设置了相对路径,如果您将类 1 包向上移动,代码也会中断。
【讨论】:
以上是关于将相对路径作为属性文件中的属性的主要内容,如果未能解决你的问题,请参考以下文章