package cn.com.mfsoft.config;
import java.io.*;
import java.net.URL;
import java.net.URLDecoder;
import java.util.*;
import org.apache.log4j.Logger;
import cn.com.mfsoft.config.ConfigurationException;
public class Configuration
{
private Properties config=new Properties();//记录配置项
private String fn=null;//记录配置文件名
//此构造方法用于新建配置文件
public Configuration()
{
String path="";
try
{
//File file = new File("system.conf");
URL u = this.getClass().getResource(this.getClass().getSimpleName()+".conf");
path = u.getPath();
//获得用户工程目录System.getProperty("user.dir")
//path=(System.getProperty("user.dir").replace("\\", "/"))+"/model/Model_"+model_id+".snet";
// path=URLDecoder.decode(path, "utf-8");
System.out.println("11"+path);
path=URLDecoder.decode(path, "utf-8");
System.out.println("22"+path);
FileInputStream fin = new FileInputStream(path);
config.load(fin); //载入文件
fin.close();
}
catch (IOException ex)
{
try
{
throw new ConfigurationException
("无法读取指定的配置文件:"+path);
} catch (ConfigurationException e)
{
e.printStackTrace();
}
}
fn=path;
}
public String getPrjRoot()
{
URL u = this.getClass().getResource(this.getClass().getSimpleName()+".conf");
String str = u.getPath();
if (str.indexOf(":") != -1)
str = str.substring(1);// 在windows下面为/F:/MyPrj/WORK/post
else
str = str.substring(0);// 在Linux下面为/usr/local/apache...
return str;
}
//从指定文件名读入配置信息
public Configuration(String fileName)throws ConfigurationException
{
try
{
FileInputStream fin = new FileInputStream(fileName);
config.load(fin); //载入文件
fin.close();
}
catch (IOException ex)
{
throw new ConfigurationException
("无法读取指定的配置文件:"+fileName);
}
fn=fileName;
}
//指定配置项名称,返回配置值
public String getValue(String itemName)
{
String value=getValue("language","chinese");
String st="";
if(value.equals("chinese"))
{
st=toGb(config.getProperty(itemName));
}
else
{
st=config.getProperty(itemName);
}
return st;//config.getProperty(itemName);
}
public String getValue2(String ItemName)
{
String value="";
try
{
String path="";
path=getClass().getResource("/system.conf").getPath().substring(1);
path=URLDecoder.decode(path, "utf-8");
System.out.println();
Configuration config= new Configuration(path);
value=config.getValue(ItemName);
} catch (Exception e)
{
e.printStackTrace();
}
return value;
}
//指定配置项名称和默认值,返回配置值
public String getValue(String itemName,
String defaultValue)
{
return config.getProperty(itemName,defaultValue);
}
//设置配置项名称及其值
public void setValue(String itemName,String value){
config.setProperty(itemName,value);
return;
}
//保存配置文件,指定文件名和抬头描述
public void saveFile(String fileName,String description)throws ConfigurationException
{
try {
FileOutputStream fout
= new FileOutputStream(fileName);
config.store(fout, description);//保存文件
fout.close();
}
catch (IOException ex) {
throw new ConfigurationException
("无法保存指定的配置文件:"+fileName);
}
}
//保存配置文件,指定文件名
public void saveFile(String fileName)throws ConfigurationException
{
saveFile(fileName,"");
}
//保存配置文件,采用原文件名
public void saveFile() throws ConfigurationException {
if(fn.length()==0)
throw new ConfigurationException
("需指定保存的配置文件名");
saveFile(fn);
}
public static String toGb(String uniStr)
{
String gbStr = "";
if(uniStr == null)
{
uniStr = "";
}
try
{
byte[] tempByte = uniStr.getBytes("ISO8859_1");
gbStr = new String(tempByte,"GB2312");
}
catch(Exception ex)
{
}
return gbStr;
}
public static void main(String[]args)
{
}
}
ConfigurationException.java
/**
*
*<p>Blog:http://www.cnweblog.com/nm1504</p>
*<p>E-mail:yyk1504@163.com</p>
*<p>创建时间:2008-3-13-下午03:12:29</p>
*<p>Copyright: (c)2008-3-13</p>
*/
package cn.com.mfsoft.config;
public class ConfigurationException extends Exception
{
public ConfigurationException()
{
}
public ConfigurationException(String msg)
{
super(msg);
}
}
ReadConfig.java
/**
**<p>Blog:http://www.cnweblog.com/nm1504</p>
*<p>E-mail:yyk1504@163.com</p>
*<p>创建时间:2008-3-13-下午03:14:24</p>
*<p>Copyright: (c)2008-3-13</p>
*/
package cn.com.mfsoft.config;
import java.net.URL;
public class ReadConfig
{
public static void main(String[] args)
{
try
{
Configuration config=new Configuration();
//读取指定文件
ReadConfig rc=new ReadConfig();
System.out.println("::::::;"+rc.getPrjRoot());
try{
/*
System.out.println(new String(config.getValue("Max_Users_Count")));//5
System.out.println(new String(config.getValue("Max_Users_Count").getBytes(),"GB2312"));//6
System.out.println(new String(config.getValue("Max_Users_Count").getBytes(),"ISO8859_1"));//7
System.out.println(new String(config.getValue("Max_Users_Count").getBytes("GB2312")));//8
System.out.println(new String(config.getValue("Max_Users_Count").getBytes("GB2312"),"GB2312"));//9
System.out.println(new String(config.getValue("Max_Users_Count").getBytes("GB2312"),"ISO8859_1"));//10
System.out.println(new String(config.getValue("Max_Users_Count").getBytes("UTF-8")));//11
System.out.println(new String(config.getValue("Max_Users_Count").getBytes("UTF-8"),"GB2312"));//12
System.out.println(new String(config.getValue("Max_Users_Count").getBytes("ISO8859_1"),"UTF-8"));//13
System.out.println(toGb(config.getValue("Max_Users_Count")));*/
}
catch(Exception e)
{
e.printStackTrace();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public String getPrjRoot()
{
URL u = this.getClass().getResource(this.getClass().getSimpleName()+".conf");
String str = u.getPath();
if (str.indexOf(":") != -1)
str = str.substring(1);// 在windows下面为/F:/MyPrj/WORK/post
else
str = str.substring(0);// 在Linux下面为/usr/local/apache...
return str;
}
}
SetConfig.java
/**
*
*<p>Blog:http://www.cnweblog.com/nm1504</p>
*<p>E-mail:yyk1504@163.com</p>
*<p>创建时间:2008-3-13-下午03:13:20</p>
*<p>Copyright: (c)2008-3-13</p>
*/
package cn.com.mfsoft.config;
import cn.com.mfsoft.config.ConfigurationException;//包含这个包方能使用配置类
public class SetConfig {
public static void main(String[] args) {
try
{
Configuration config = new Configuration();
//设置一些属性值
config.setValue("language", "chinese");
config.setValue("Max_Users_Count", "50");
config.setValue("Max_OpenedFile_Count", "38");
//保存文件
config.saveFile("d:/system.conf",
"Sytem Global Configuration");
}
catch (ConfigurationException ex) {
//捕获我们自定义的异常
ex.printStackTrace();
}
}
}
分享到:
相关推荐
在Java中,我们可以使用多种方法来读取配置文件,下面将详细介绍几种常见的方法。 1. **使用`java.io`流读取** 最基础的方式是使用Java的I/O流来读取文本配置文件(通常是.properties格式)。例如,`java.io....
提供的压缩包中包含`JAVA配置文件编写说明文档.pdf`和`说明.txt`,可能是详细的指南或教程,可以帮助你深入理解Java配置文件的编写和使用。`教程阅读器下载.url`和`爱书吧 电子书 教程 让更多人 读更多的书.url`则...
- 使用`Properties`类的`load(Reader reader)`方法,可以读取配置文件。通常,我们通过`InputStreamReader`将输入流转换为字符流,并指定UTF-8编码,以避免中文乱码问题。 ```java Properties props = new ...
总的来说,使用Java配置文件链接数据库是一种最佳实践,它将数据库连接信息与业务逻辑分离,提高了代码的可读性和可维护性。同时,通过创建通用的数据库操作类,可以简化对数据库的操作,使代码更加模块化。在实际...
在Java类中,读取配置文件信息可以使用多种方法,其中一种方法是使用`this.getClass().getClassLoader().getResourceAsStream`方法。 `this.getClass().getClassLoader().getResourceAsStream`方法是Java类中的一种...
这里,我们关注的是如何使用Java来读取配置文件,这通常涉及到`java.util.Properties`类和文件I/O操作。 标题“java读取配置文件源代码”表明我们将讨论一个Java程序,该程序用于从`.properties`文件中加载和解析...
在Java代码中,我们可以使用`java.util.Properties`类来读取和加载配置文件。以下是一个简单的示例: ```java import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; public...
Java代码格式配置文件是开发团队为了保持代码的一致性和可读性而制定的规范文档,通常以`.editorconfig`、`.java-style`或`.checkstyle`等格式存在。这些文件包含了针对Java源代码的样式规则,例如缩进、空格、换行...
如果需要读取配置文件中的所有键值对,可以使用`propertyNames`方法获取所有键名,并通过`getProperty`方法逐一读取每个键对应的值。 ```java public static void readProperties(String filePath) { ...
Java中配置文件数据库连接主要涉及以下几个步骤:创建.properties配置文件,使用Properties类读取配置,使用JDBC或连接池建立数据库连接,如果使用Spring框架,还可以利用其强大的依赖注入和自动配置功能。...
自Java 11开始,可以直接使用`Files.readString()`方法读取文本文件,简化了配置文件的读取过程: ```java Path path = Paths.get("config.properties"); Properties prop = new Properties(); prop.load...
在 Java 开发中,XML 配置文件的使用变得越来越普遍,许多项目都开始使用 XML 作为配置文件的格式,例如 Tomcat 的安装配置文件和 J2EE 的配置文件。使用 XML 作为配置文件有很多好处,例如可以轻松地更改配置项,而...
然而,这个"Java配置文件助手"可能提供了更高级的功能,如自定义解析器来处理非标准格式,或者提供了易于使用的API来操作这些自定义标签和语法。此外,其支持读写ini、conf、txt等格式,表明它可能实现了针对不同...
要读取这样的配置文件,我们可以使用Java的`java.util.Properties`类。以下是如何使用该类的步骤: 1. 加载配置文件:首先,我们需要创建一个`Properties`对象,然后加载配置文件。这可以通过`InputStream`完成,...
在Java编程中,加载配置文件是一项常见的任务,它允许...总的来说,这个"Java加载配置文件工具类"是Java开发中的一个实用组件,它的目标是简化配置文件的处理,提高开发效率,并确保程序能够正确地获取和使用配置信息。
Java配置文件在软件开发中扮演着至关重要的角色,它们提供了灵活的方式来管理应用程序的参数和设置,使得无需重新编译代码就能调整程序的行为。"java配置文件 beta v3.0" 提供了对多种常见格式的支持,包括XML、ini...
在Java编程中,读取配置文件是常见的任务,它允许我们分离程序的配置信息,使得配置可以独立于代码进行修改,提高程序的可维护性和灵活性。这篇内容将深入讲解Java如何读取XML、INI等不同类型的配置文件。 一、XML...
总结来说,Java中读取配置文件是一个基本但至关重要的操作,使用`Class.getResourceAsStream`结合`Properties`类可以轻松完成。确保正确设置配置文件的路径,以及在使用完毕后关闭`InputStream`,以避免资源泄露。...
纯java底层读取配置文件,生成map,可以根据key模糊匹配查询,封装好了方法。比如getVal("spring.dubbo*url")