说说我的项目中的情况吧:
配置文件“weblogic11gproperties”保存在WEB-INFO目录下,和webxml在同一个目录下。
一个JavaBean专门用于读取配置文件的内容:
public class PropertiesIO {
private String fileName = null;
public PropertiesIO(String fileName){
thisfileName = getClass()getClassLoader()getResource("/")getPath() + "\\" + fileName;
}
public String getValue(String key){
try{
InputStream in = new FileInputStream(fileName);
Properties prop = new Properties();
propload(in);
inclose();
return propgetProperty(key);
}
catch(Exception err){
errprintStackTrace();
return null;
}
}
}
重点说明:getClass()getClassLoader()getResource("/")会得到当前项目下的“WEB-INF\classes”目录,即JavaBean的class文件的根目录,
getClass()getClassLoader()getResource("/")getPath() + "\\" + fileName
就会得到当前项目下的“WEB-INF\weblogic11gproperties”文件。
getValue()是根据键值得到相应配置项的内容,这样就简单了。
个人建议使用FileInputStrean流 你试试看。因为文件流加载文件应该没问题。
InputStream in = getPropertiesclassgetClassLoad()getResourceAsStream(
"configproperties");这句改成FileInputStream in=new FileInputStream("/configproperties")看看。
因为properties文件不需要重新编译,项目部署后,修改properties里面的配置信息不需要重新编译和打war包,所以很多配置文件我们可以直接配置在这里,写一个工具类即可解析获取配置信息
(1)基本properties文件datacopyproperties
host=127001
user=root
passWord=test
dataBaseName=test_database
tableName=testtabler
fileName=testuser
fileFormat=sql
(2)解析获取datacopyproperties里面的属性
package comictcommon;
import javaioIOException;
import javaioInputStream;
import javautilProperties;
public class ProUtils {
public String host;
public String user;
public String passWord;
public String dataBaseName;
// 需要备份的表名
public String tableName;
public String fileName;
public String fileFormat;
public ProUtils(){
getProperties();
}
public void getProperties(){
Properties prop = new Properties();
InputStream ins = thisgetClass()getResourceAsStream("/datacopyproperties");
try {
propload(ins);
host =propgetProperty("host");
user = propgetProperty("user");
passWord =propgetProperty("passWord");
dataBaseName =propgetProperty("dataBaseName");
tableName= propgetProperty("tableName");
fileName= propgetProperty("fileName");
fileFormat= propgetProperty("fileFormat");
Systemoutprintln(host);
Systemoutprintln(user);
Systemoutprintln(passWord);
Systemoutprintln(dataBaseName);
Systemoutprintln(tableName);
Systemoutprintln(fileName);
Systemoutprintln(fileFormat);
} catch (IOException e) {
eprintStackTrace();
}
}
//获取项目相对路径
public String getFileRoad(){
String path1 = ThreadcurrentThread()
getContextClassLoader()getResource("")getPath();
return path1;
}
}
import javaioFile;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioIOException;
import javautilEnumeration;
import javautilProperties;
public class PropertiesTest
{
/定义静态方法,类名可以直接调用,用于读取properties属性文件中的内容/
public static void initFile()
{
/D://aproperties源属性文件的路径和名字/
File file = new File("D://aproperties");
FileInputStream fis = null;
try
{
/输入流和属性文件关联/
fis = new FileInputStream(file);
/创建属性集对象/
Properties prop = new Properties();
/将读取的内容加载到属性集对象中/
propload(fis);
/返回属性列表中所有键的枚举/
Enumeration enums = proppropertyNames();
while (enumshasMoreElements())
{
/将每一条属性强制转换为String类型,得到键key/
String key = (String) enumsnextElement();
/根据键得到对应的值value(String类型)/
String value = propgetProperty(key);
/输出properties属性文件的内容/
Systemoutprintln(key+"----"+value);
}
} catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
} finally
{
if(fis!=null)
try {
fisclose();
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
public static void main(String[] args)
{
/调用方法读取属性文件中内容/
PropertiesTestinitFile();
}
}
结果是:
UserPass----
URl----jdbc:microsoft:sqlserver://localhost:1433;databasename=employee
Driver----commicrosoftjdbcsqlserverSQLServerDriver
UserName----sa
Properties 类
static {
properties = new Properties();
InputStream in = null;
try {
in = ReadPropertiesclassgetResourceAsStream("/brochina-configproperties");//文件路径
propertiesload(in);
} catch (Exception e) {
eprintStackTrace();
}
finally{
try {
if(in!=null) inclose();
} catch (IOException e) {
eprintStackTrace();
}
}
}
String value = propertiesgetProperty(key);具体方法
以上就是关于java读取properties配置文件路径问题全部的内容,包括:java读取properties配置文件路径问题、java读取properties文件、javaee中怎么获取properties中的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)