使用Properties读取.properties文件

时间:2014-08-15 18:30:07

标签: java linux servlets properties

我需要能够使用FileInoputStream读取属性文件。 我有3个属性文件:

Properties props = new Properties();
Properties props2 = new Properties();
Properties props3 = new Properties();
FileInputStream ldapfis = new FileInputStream("/home/webserver/tomcat6/properties/js.ldap.properties");
FileInputStream smtpfis = new FileInputStream("/home/webserver/tomcat6/properties/js.smtp.properties");
FileInputStream dbfis   = new FileInputStream("/home/webserver/tomcat6/properties/js.db.properties");    

props.load(ldapfis);
props2.load(smtpfis);
props2.load(dbfis);

String host = props.getProperty("ldap.provider.host");  
String dbName = props2.getProperty("db.name");  

这是你在linux中用绝对路径做的吗? 可以这样做吗?

2 个答案:

答案 0 :(得分:1)

new FileInputStream("/home/webserver/tomcat6/properties/js.ldap.properties");

如果文件路径以斜杠(/)开头,则将其作为路径。

但是如果文件路径不是以斜杠(/)开头,那么它是绝对路径。它将尝试使用java home追加路径。

对于Ex

new FileInputStream("properties/js.ldap.properties");

它将追加java path home

如果java home为/home/webserver/tomcat6/,则会尝试在/home/webserver/tomcat6/properties/js.ldap.properties下找到。

答案 1 :(得分:1)

执行此操作并不是真的可以,因为如果您在任何其他位置安装tomcat,甚至从tomcat6升级到tomcat7,您的所有代码都将中断。

我建议使用应该指向tomcat主目录的System.getProperty("CATALINA_HOME")。然后,您可以根据该路径获取路径。