我有一个位于C:/codebase/myProject-Authentication/sample.properties
的属性文件,我的工作区位于C:/codebase/myProject/com.company.team.website/src/.../AccessCodeServlet.java
。
因此,我需要阅读sample.properties
中的AccessCodeServlet.java
。 AccessCodeServlet
是一个servlet。
如果属性文件与AccessCodeServlet.java
位于同一文件夹中,我可以这样做:
ResourceBundle bundle = ResourceBundle.getBundle("sample");
但是当属性文件在工作区外时我该怎么做?
答案 0 :(得分:0)
在使用之前将文件移动到工作区的相对路径?
public void MovePropertiesFile()
{
InputStream otherStream = null;
OutputStream workspaceStream = null;
try{
File afile =new File("C:\\somwhere\\.....\\properties.properties");
File bfile =new File("C:\\workspace\\.....\\properties.properties");
otherStream = new FileInputStream(afile);
workspaceStream = new FileOutputStream(bfile);
byte[] buffer = new byte[1024];
int length;
while ((length = otherStream .read(buffer)) > 0){
workspaceStream .write(buffer, 0, length);
}
otherStream .close();
workspaceStream .close();
}catch(IOException e){
e.printStackTrace();
}
}
答案 1 :(得分:0)
好吧,您可以将包含 sample.properties 的外部文件夹添加到eclipse中的类路径中:
Viola - 现在找到了资源包!
答案 2 :(得分:0)
您需要指定绝对路径,但不应该像正确推测的那样对其进行硬编码。
您应该从System属性中获取文件的基本路径,您可以在代码中使用System.getProperty(" basePath")访问该文件,并且应该在您的文件名前加上创造一条绝对的道路。
在运行应用程序时,您可以在java命令行中指定路径,如下所示:
java -DbasePath="/a/b/c" ...
...表示运行程序的Java命令的当前参数。