JAVA中调用配置文件的值与从数据库中取出的值进行比较

JAVA中调用配置文件的值与从数据库中取出的值进行比较,第1张

读取配置文件的代码:

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读取配置文件的几种方法以及路径问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9515028.html

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

发表评论

登录后才能评论

评论列表(0条)

保存