读取配置文件的代码:
import javaioFileInputStream;
import javaioIOException;
import javautilProperties;
public class App {
public static void main(String[] args) {
Properties prop = new Properties();
try {
propload(new FileInputStream("config/configproperties"));
Systemoutprintln(propgetProperty("database"));
Systemoutprintln(propgetProperty("dbuser"));
Systemoutprintln(propgetProperty("dbpassword"));
} catch(IOException e) {
eprintStackTrace();
}
}
}
给你个例子,读取configproperties文件。
文件内容(值自己加)如下:
TestHosts =
FormalHosts =
TestConfig =
FormalConfig =
HostsPath =
ConfigPath =
读取文件的类如下:
import javaioBufferedInputStream;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioIOException;
import javaioInputStream;
import javaioUnsupportedEncodingException;
import javautil;
public class EvnConfig{
public static Properties PROPERTIES = new Properties();
static{
String proFilePath = SystemgetProperty("userdir")+"/configproperties";
//Systemoutprintln(proFilePath);
//InputStream propertiesStream = EvnConfigclassgetClassLoader()getResourceAsStream(proFilePath);
InputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(proFilePath));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1printStackTrace();
}
try{
PROPERTIESload(in);
}catch(IOException e){
Systemoutprintln("properties创建失败!");
eprintStackTrace();
}
//Systemoutprintln("EvnConfigtestHosts:"+PROPERTIESgetProperty("TestHosts"));
}
public static final String testHosts = changeCode(PROPERTIESgetProperty("TestHosts"));
public static final String formalHosts = changeCode(PROPERTIESgetProperty("FormalHosts"));
public static final String testConfig = changeCode(PROPERTIESgetProperty("TestConfig"));
public static final String formalConfig = changeCode(PROPERTIESgetProperty("FormalConfig"));
public static final String hostsPath = changeCode(PROPERTIESgetProperty("HostsPath"));
public static final String configPath = changeCode(PROPERTIESgetProperty("ConfigPath"));
public static String changeCode(String str){
String toStr = "";
try {
//Systemoutprintln(str + "转换");
toStr = new String(strgetBytes("ISO-8859-1"),"GB2312");
//Systemoutprintln(str + "转换成功!");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
Systemoutprintln(str + "转换失败!");
eprintStackTrace();
}
return toStr;
}
}
类加载器读取:
只能读取classes或者类路径中的任意资源,但是不适合读取特别大的资源。
①获取类加载器 ClassLoader cl = 类名classgetClassLoader();
②调用类加载器对象的方法:public URL getResource(String name);
此方法查找具有给定名称的资源,资源的搜索路径是虚拟机的内置类加载器的路径。
类 URL 代表一个统一资源定位符,它是指向互联网”资源”的指针。
资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用
URL对象方法:public String getPath(),获取此 URL 的路径部分。
示例代码:
2类加载器读取:
只能读取classes或者类路径中的任意资源,但是不适合读取特别大的资源。
①获取类加载器 ClassLoader cl = 类名classgetClassLoader();
②调用类加载器对象的方法:public InputStream getResourceAsStream(String name);
返回读取指定资源的输入流。资源的搜索路径是虚拟机的内置类加载器的路径。
这个问题有两种办法:
第一种办法:如楼上所说的那样也可以,就是native2ascii -reverse -encoding gb2312 userproperties ActionName_zh_CNproperties这样以后,你打开ActionName_zh_CNproperties的内容,再将ActionName_zh_CNproperties文件这样置:native2ascii ActionName_zh_CNproperties userChangeproperties 然后你的程序读userChangeproperties的内容就可以。
第二种办法是:
如你代码里写的,你可以在String username=propertygetProperty("username");之后,添加JAVA代码页可以将乱码转为中文的。用如下语句就可以了,resultName=new String(usernamegetBytes("ISO-8859-1"),"gbk"); 然后再用resultName就可以了,不过这样的话你下面的String password=propertygetProperty("password");
都慢慢的通过上面的java代码去转。
不知道你对反射熟悉不?如果熟悉的话可以通过反射机制去做第二种办法的转码就方便多了!
如果没有应用Struts框架的话就是Webxml,在Web Root 下的WEB-INF路径下,如果应用了框架,我只知道Struts1的配置文件时struts-configxml。
最常用读取properties文件的方法 InputStream in = getClass()getResourceAsStream("资源Name");这种方式要求properties文件和当前类在同一文件夹下面。如果在不同的包中,必须使用: InputStream ins = thisgetClass()getResourceAsStream(
以上就是关于JAVA中调用配置文件的值与从数据库中取出的值进行比较全部的内容,包括:JAVA中调用配置文件的值与从数据库中取出的值进行比较、java 程序打包为jar发布后,读取配置文件路径出错 ,怎样获取配置文件路径、Java读取配置文件的几种方法以及路径问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)