服務器:Tomcat 9
注意問題:配置文件應該放入Tomcat的正式工程目錄中測試。
可用代碼:
package com.daoen.rtis.test;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Properties;
public class Test {
public void GetPro() {
try {
String fileName = "db.txt";// property文件名
String filePath = getWebPath(fileName);// 得到property文件在web工程里的全路徑名稱
System.out.println(filePath);
Reader myReader = new FileReader(fileName);// 讀取property文件
Properties prop = new Properties();// 創建Properties類
prop.load(myReader);// 用Properties類對象加載文件
System.out.println(prop.getProperty("ip"));
System.out.println(prop.getProperty("port"));
System.out.println(prop.getProperty("user"));
System.out.println(prop.getProperty("password"));
myReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 得到web容器路徑
// 注意:要在正式發布的web工程里面加入文件,不能在源代碼工程里測試。
public static String getWebPath(String fileName) {
// file:/D:/JavaWeb/.metadata/.me_tcat/webapps/TestBeanUtils/WEB-INF/classes/
String path = Thread.currentThread().getContextClassLoader().getResource("").toString();
// 去掉返回路徑中各種不需要的東西
path = path.replace('/', '\\'); // 將/換成\
path = path.replace("file:", ""); // 去掉file:
// path = path.replace("classes\\", ""); // 去掉class\
path = path.substring(1); // 去掉第一個\,如 \D:\JavaWeb...
// 如果有文件名,則在路徑上加入文件名
if (fileName.isEmpty() == false) {
path += fileName;
}
return path;
}
}
參考:
