Мені потрібно вміти читати файли властивостей за допомогою 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 з абсолютним шляхом? Це нормально робити?
Відповіді:
1 для відповіді № 1new FileInputStream("/home/webserver/tomcat6/properties/js.ldap.properties");
Якщо шлях до файлу починається з косою косою (/), він сприйме це як шлях.
але якщо шлях до файлу не починається з косою косою (/), то це абсолютний шлях. Він спробує додати шлях до Java додому.
Для екс
new FileInputStream("properties/js.ldap.properties");
Він додасть шлях до дому
Ось, якщо ява вдома є /home/webserver/tomcat6/
його спробують знайти під /home/webserver/tomcat6/properties/js.ldap.properties
.
1 для відповіді № 2
Це не дуже добре для цього, тому що якщо встановити tomcat в будь-якому іншому місці або навіть оновити з tomcat6 до tomcat7, весь ваш код порушиться.
Я б рекомендував використовувати System.getProperty("CATALINA_HOME")
який повинен вказувати на ваш домашній каталог tomcat. Потім ви можете отримати шлях на основі цього.