[英]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中的類路徑:
中提琴-現在找到資源包!
您需要指定絕對路徑,但您不應在正確推測的情況下對其進行硬編碼。
您應該從系統屬性中獲取文件的基本路徑,可以在代碼中使用System.getProperty(“ basePath”)訪問該系統屬性,並且應該在文件名之前添加以創建絕對路徑。
運行應用程序時,可以在java命令行中指定路徑,如下所示:
java -DbasePath="/a/b/c" ...
...表示運行命令的Java命令的當前參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.