java读取properties配置文件路径问题

java读取properties配置文件路径问题,第1张

说说我的项目中的情况吧:

配置文件“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中的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9609570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存