一,獲取src下面的配置文件信息
1,結構圖如下:

package com.binp.properties; import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; import java.util.ResourceBundle; public class GetPropertiesValues { public static void main(String[] args) throws Exception { //1,第一種方法(如果配置文件放在包下面,就需要在路徑中把包的路徑加上去) String path = GetPropertiesValues.class.getResource("/").getPath(); System.out.println(path); FileInputStream fInputStream = new FileInputStream(path+"pro.properties"); Properties properties = new Properties(); properties.load(fInputStream); System.out.println(properties.getProperty("className")); //2,第二種方法(如果配置文件放在包下面,就需要在路徑中把包的路徑加上去) InputStream iStream = GetPropertiesValues.class.getResourceAsStream("/pro.properties"); properties.load(iStream); iStream.close(); System.out.println(properties.getProperty("method")); //3,第三種方法(此方法只能將配置文件放置在src目錄下,不能放在包中) String value = ResourceBundle.getBundle("pro").getString("admin"); System.out.println(value); } }
二,獲取WebContent目錄下的配置文件
1,前提條件:是在tomcat啟動的情況下:
@WebServlet("/testEvery")
public class testEveryServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public testEveryServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* 訪問url:http://localhost:8080/demoProj/testEveryServlet
*/
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
System.out.println("doGet讀取到的/WEB-INF/config/sysconfig.properties:path:"+path);
String url = request.getSession().getServletContext().getRealPath("/WEB-INF/config/config.properties");
System.out.println("doGet讀取到的/WEB-INF/config/config.properties:url:"+url);
/**
* 結果:
* doGet:path:D:\tomcat7\wtpwebapps\demoProj\config\sysconfig.properties
* doGet:url:D:\tomcat7\wtpwebapps\demoProj\WEB-INF\config\config.properties
*/
//只能獲取src下面的
InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/config/test.properties");
Properties prop = new Properties(); //map
prop.load(in);
String url1 = prop.getProperty("url");
System.out.println("獲取到的url1:"+url1);//獲取到的url1:www.baidu.com
//不可獲取
InputStream in2 = this.getServletContext().getResourceAsStream("/WEB-INF/config.properties");
Properties prop2 = new Properties(); //map
prop.load(in2);
String url2 = prop2.getProperty("url");
System.out.println("獲取到的url2:"+url2);//獲取到的url2:null
//不可獲取
InputStream in3 = this.getServletContext().getResourceAsStream("/webcontent.properties");
Properties prop3 = new Properties(); //map
prop.load(in3);
String url3 = prop3.getProperty("url");
System.out.println("獲取到的url3:"+url3);//獲取到的url3:null
//不可獲取
InputStream in4 = this.getServletContext().getResourceAsStream("/config/wcc.properties");
Properties prop4 = new Properties(); //map
prop.load(in4);
String url4 = prop4.getProperty("url");
System.out.println("獲取到的url4:"+url4);//獲取到的url4:null
// 讀取src下config包中的testJava.java
// InputStream in = ReadFile.class.getResourceAsStream("/config/testJava.java");//in為null
// byte[] a=new byte[100];
// in.read(a, 0, 900);
// System.out.println("讀取src下config包中的testJava.java的輸入流in的內容toString:"+in.toString());
// System.out.println("讀取到的a:"+a);
String fileName3 = ReadFile.class.getResource("/config/test.properties").getFile();
System.out.println("讀取src下config包中的test.properties:"+fileName3);
//輸出:讀取src下config包中的test.properties:/D:/tomcat7/wtpwebapps/demoProj/WEB-INF/classes/config/test.properties
// in.close();
// 讀取src下 基名為myproperties的properties文件,獲取其中name配置值
String value = ResourceBundle.getBundle("myproperties").getString("name");
System.out.println("獲取到的myproperties.properties的值value:"+value);
//輸出:獲取到的myproperties.properties的值value:myname
// 讀取src下myproperties.properties
InputStream in1 = ReadFile.class.getResourceAsStream("/myproperties.properties");
Properties properties = new Properties();
properties.load(in1);
String value2 = properties.getProperty("name"); // 獲得name屬性
System.out.println("獲取到的myproperties.properties的值value2:"+value2);
//獲取到的myproperties.properties的值value2:myname
//讀取src下的
String sensitiveWordsServerPath1 = SysConfig.getSysParam("sensitiveWords_server_path1");
System.out.println("獲取的sensitiveWordsServerPath1:"+sensitiveWordsServerPath1);
//獲取的sensitiveWordsServerPath1:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx
//讀取src下的
String pp = prop("sensitiveWords_server_path1");
System.out.println("pp:"+pp);//pp:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx
}
public String prop(String url){
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config/sysconfig.properties");
Properties p = new Properties();
try {
p.load(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("p:"+p);
return p.getProperty(url);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
System.out.println("doPost:path:"+path);
}
}
參考文檔:https://blog.csdn.net/superit401/article/details/78206877
