//讀取配置文件
//方法一
InputStream in= this.getClass().getResourceAsStream("aa.properties");
Properties pr = new Properties();
try{
pr.load(in);
String value = pr.getProperty("key");
}catch(Exception e){}
//方法二
ResourceBundle rb = null;
rb.getBundle("aa");//這裡不要後綴名
String va =rb.getString("key");
Java幾種加載文件路經的方式
得到src下的aa.porperties文件
ResourceBundle localResource = ResourceBundle.getBundle(“aa”);
得到src下com.svse下包下的aa.propertes文件
ResourceBundle localResource = ResourceBundle.getBundle("com/svse",”aa”);
String value = localResource.getString("test");
System.out.println("ResourceBundle: " + value);
工程src目錄下aa.properties(名字後綴必須為properties)文件內容如下:
test=hello word
相對路徑的獲得
說明:相對路徑(即不寫明時候到底相對誰)均可通過以下方式獲得(不論是一般的java項目還是web項目)
String relativelyPath=System.getProperty("user.dir");
上述相對路徑中,java項目中的文件是相對於項目的根目錄
web項目中的文件路徑視不同的web服務器不同而不同(tomcat是相對於 tomcat安裝目錄\bin)
類加載目錄的獲得
1.1)通用的方法一(不論是一般的java項目還是web項目,先定位到能看到包路徑的第一級目錄)
InputStream is= Thread.currentThread().getContextClassLoader().
.getResourceAsStream("test.txt");
(test.txt文件的路徑為 項目名\src\test.txt)
1.2)通用方法二 (此方法和1.1中的方法類似,不同的是此方法必須以'/'開頭)
InputStream is= this.getClass()..getResourceAsStream("/test.txt");
(test.txt文件的路徑為 項目名\src\test.txt,類Test1所在包的第一級目錄位於src目錄下)
1.3) 得到工程 所在的目錄
URL url = this.getClass().getResource("/");
if(url == null){
url = Thread.currentThread()
.getContextClassLoader().getResource("/");
}
try{
File file = new File(url.getFile());
//得到classes目錄所在的路徑
//如:E:\workspacesFlex\tomcat6.0\webapps\ssh\WEB-INF\classes
String classPath = file.getPath();
System.out.println(classPath);
//向上返回兩級得到工程 所在的跟路徑 如:
//E:\workspacesFlex\tomcat6.0\webapps\ssh
srcPath = file.getParentFile().getParent();
System.out.println(srcPath);
}catch(Exception e){
System.out.println("得到文件路徑出錯");
}