如何读取位于工作区外的文件夹中的java类中的属性文件?

时间:2015-04-09 14:04:00

标签: java eclipse resourcebundle properties-file

我有一个位于C:/codebase/myProject-Authentication/sample.properties的属性文件,我的工作区位于C:/codebase/myProject/com.company.team.website/src/.../AccessCodeServlet.java

因此,我需要阅读sample.properties中的AccessCodeServlet.javaAccessCodeServlet是一个servlet。

如果属性文件与AccessCodeServlet.java位于同一文件夹中,我可以这样做:

ResourceBundle bundle = ResourceBundle.getBundle("sample");

但是当属性文件在工作区外时我该怎么做?

3 个答案:

答案 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中的类路径中:

  • 打开运行配置
  • 选择<您的应用条目>
  • 转到“类路径”标签
  • 选择“用户条目”
  • 点击“高级”按钮
  • 选中“添加外部文件夹”
  • 点击“确定”按钮
  • 使用 .properties 文件
  • 选择您的外部文件夹

Viola - 现在找到了资源包!

答案 2 :(得分:0)

您需要指定绝对路径,但不应该像正确推测的那样对其进行硬编码。

您应该从System属性中获取文件的基本路径,您可以在代码中使用System.getProperty(" basePath")访问该文件,并且应该在您的文件名前加上创造一条绝对的道路。

在运行应用程序时,您可以在java命令行中指定路径,如下所示:

java -DbasePath="/a/b/c" ...

...表示运行程序的Java命令的当前参数。