簡體   English   中英

如何在工作區外部的文件夾中的java類中讀取屬性文件?

[英]How can I read properties file in java class located in a folder outside workspace?

我在C:/codebase/myProject-Authentication/sample.properties有一個屬性文件,我的工作空間在C:/codebase/myProject/com.company.team.website/src/.../AccessCodeServlet.java

因此,我需要從AccessCodeServlet.java讀取sample.properties AccessCodeServlet是一個servlet。

如果屬性文件與AccessCodeServlet.java位於同一文件夾中,則可以執行以下操作:

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

但是,當屬性文件位於工作空間之外時,該怎么辦?

使用之前將文件移動到工作空間的相對路徑嗎?

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();
    }
}

好了,您可以將包含sample.properties的外部文件夾添加到eclipse中的類路徑:

  • 開放式運行配置
  • 選擇<您的應用程序條目>
  • 轉到“類路徑”選項卡
  • 選擇“用戶條目”
  • 點擊“高級”按鈕
  • 選中“添加外部文件夾”
  • 點擊“確定”按鈕
  • 選擇帶有.properties文件的外部文件夾

中提琴-現在找到資源包!

您需要指定絕對路徑,但您不應在正確推測的情況下對其進行硬編碼。

您應該從系統屬性中獲取文件的基本路徑,可以在代碼中使用System.getProperty(“ basePath”)訪問該系統屬性,並且應該在文件名之前添加以創建絕對路徑。

運行應用程序時,可以在java命令行中指定路徑,如下所示:

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

...表示運行命令的Java命令的當前參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM