- 浏览: 582237 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (268)
- ext基础 (72)
- Java基础 (68)
- jquery (14)
- oracle (21)
- sqlserver (7)
- linux (2)
- webserver (1)
- C/C++ (1)
- sql (9)
- IDE (2)
- java 智能卡 (1)
- mysql (6)
- ibatis (2)
- struts2 (3)
- cvs (1)
- 服务器 (1)
- html (11)
- freemarker (4)
- liferay (2)
- jMS (1)
- iphone (1)
- c# (1)
- Android (11)
- wince (6)
- javascript (4)
- ps (1)
- hibernate (1)
- 其他 (3)
最新评论
-
ilyq:
请问,px.gif 在哪里
斜线表头 -
jisang:
没看懂,第一个org.js和最后的js什么关系,可否发我一份完 ...
用ExtJS 实现动态载入树(Load tree) -
JavaStudyEye:
我去,能否搞个正确点的,,,
<#list ...
freemarker 遍历map 对象 -
PangSir:
大爱,简直是大爱!!困扰这么久以来的问题,虽然知道是CSS的问 ...
ExtJs checkbox radiobox 问题 汇总 -
skynet_java:
有demo嘛!邮箱:think_world@foxmail.c ...
消息推送服务需求 - 服务器开发、客户端开发
在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。比如说我们开发了一个操作数据库的模块,在开发的时候我们连接本地的数据库那么 IP ,数据库名称,表名称,数据库主机等信息是我们本地的,要使得这个操作数据的模块具有通用性,那么以上信息就不能写死在程序里。通常我们的做法是用配置文件来解决。
各种语言都有自己所支持的配置文件类型。比如 Python ,他支持 .ini 文件。因为他内部有一个 ConfigParser 类来支持 .ini 文件的读写,根据该类提供的方法程序员可以自由的来操作 .ini 文件。而在 Java 中, Java 支持的是 .properties 文件的读写。 JDK 内置的 Java.util.Properties 类为我们操作 .properties 文件提供了便利。
------------------------------------------------------------------------------
一. .properties 文件的形式
# 以下为服务器、数据库信息
dbPort = localhost
databaseName = mydb
dbUserName = root
dbPassword = root
# 以下为数据库表信息
dbTable = mytable
# 以下为服务器信息
ip = 192.168.0.9
在上面的文件中我们假设该文件名为: test.properties 文件。其中 # 开始的一行为注释信息;在等号“ = ”左边的我们称之为 key ;等号“ = ”右边的我们称之为 value 。(其实就是我们常说的键 - 值对) key 应该是我们程序中的变量。而 value 是我们根据实际情况配置的。
二. JDK 中的 Properties 类 Properties 类存在于胞 Java.util 中,该类继承自 Hashtable ,它提供了几个主要的方法:
1. getProperty ( String key) , 用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value。
2. load ( InputStream inStream) ,从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 test.properties 文件)进行装载来获取该文件中的所有键 - 值对。以供 getProperty ( String key) 来搜索。
3. setProperty ( String key, String value) ,调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键 - 值对。
4. store ( OutputStream out, String comments) , 以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。与 load 方法相反,该方法将键 - 值对写入到指定的文件中去。
5. clear () ,清除所有装载的 键 - 值对。该方法在基类中提供。
有了以上几个方法我们就可以对 .properties 文件进行操作了!
-----------------------------------------------------------------------------
三.代码实例
==============================================================================
四.小结 通过上面的例子不难看出,在Java中操作配置文件是非常简单的。在一个需要用到大量配置信息的模块或系统里,我们有必要封装一个专门的类来共使用。通过最后的main函数调用,相信大家可以看出该类的用法。不足指出希望大家多多指点。
Java properties文件的操作
----------------------------------------------------
Java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。下面是一个操作Java properties文件的例子,给出了操作方法和properties文件。从中可以看到如何读取properties文件,并应用读取出来的值,是学习操作properties文件的好例子。
一、properties文件
IcisReport.properties
------------------------------------------------------
#################################
# 绩效考核系统的配置文件 #
# 作者: #
# 日期:2010年8月14日 #
#################################
#
# 说明:业务系统TopIcis和报表系统IcisReport是分离的
# 可分开部署到不同的服务器上,也可以部署到同一个服务
# 器上;IcisReprot作为独立的web应用程序可以使用任何
# 的Servlet容器或者J2EE服务器部署并单独运行,也可以
# 通过业务系统的接口调用作为业务系统的一个库来应用.
#
# IcisReport的ip
IcisReport.server.ip=10.43.96.5
# IcisReport的端口
IcisReport.server.port=8080
# IcisReport的上下文路径
IcisReport.contextPath=/IcisReport
------------------------------------------------------
二、操作properties文件的Java方法
下面是一个操作properties文件的方法
各种语言都有自己所支持的配置文件类型。比如 Python ,他支持 .ini 文件。因为他内部有一个 ConfigParser 类来支持 .ini 文件的读写,根据该类提供的方法程序员可以自由的来操作 .ini 文件。而在 Java 中, Java 支持的是 .properties 文件的读写。 JDK 内置的 Java.util.Properties 类为我们操作 .properties 文件提供了便利。
------------------------------------------------------------------------------
一. .properties 文件的形式
# 以下为服务器、数据库信息
dbPort = localhost
databaseName = mydb
dbUserName = root
dbPassword = root
# 以下为数据库表信息
dbTable = mytable
# 以下为服务器信息
ip = 192.168.0.9
在上面的文件中我们假设该文件名为: test.properties 文件。其中 # 开始的一行为注释信息;在等号“ = ”左边的我们称之为 key ;等号“ = ”右边的我们称之为 value 。(其实就是我们常说的键 - 值对) key 应该是我们程序中的变量。而 value 是我们根据实际情况配置的。
二. JDK 中的 Properties 类 Properties 类存在于胞 Java.util 中,该类继承自 Hashtable ,它提供了几个主要的方法:
1. getProperty ( String key) , 用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value。
2. load ( InputStream inStream) ,从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 test.properties 文件)进行装载来获取该文件中的所有键 - 值对。以供 getProperty ( String key) 来搜索。
3. setProperty ( String key, String value) ,调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键 - 值对。
4. store ( OutputStream out, String comments) , 以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。与 load 方法相反,该方法将键 - 值对写入到指定的文件中去。
5. clear () ,清除所有装载的 键 - 值对。该方法在基类中提供。
有了以上几个方法我们就可以对 .properties 文件进行操作了!
-----------------------------------------------------------------------------
三.代码实例
package configuration; import Java.io.FileInputStream; import Java.io.FileNotFoundException; import Java.io.FileOutputStream; import Java.io.IOException; import Java.util.Properties; /** *//** * 读取properties文件 * @author Qinya * */ public class Configuration ...{ private Properties propertie; private FileInputStream inputFile; private FileOutputStream outputFile; /** *//** * 初始化Configuration类 */ public Configuration() ...{ propertie = new Properties(); } /** *//** * 初始化Configuration类 * @param filePath 要读取的配置文件的路径+名称 */ public Configuration(String filePath) ...{ propertie = new Properties(); try ...{ inputFile = new FileInputStream(filePath); propertie.load(inputFile); inputFile.close(); } catch (FileNotFoundException ex) ...{ System.out.println("读取属性文件--->失败!- 原因:文件路径错误或者文件不存在"); ex.printStackTrace(); } catch (IOException ex) ...{ System.out.println("装载文件--->失败!"); ex.printStackTrace(); } }//end ReadConfigInfo(...) /** *//** * 重载函数,得到key的值 * @param key 取得其值的键 * @return key的值 */ public String getValue(String key) ...{ if(propertie.containsKey(key))...{ String value = propertie.getProperty(key);//得到某一属性的值 return value; } else return ""; }//end getValue(...) /** *//** * 重载函数,得到key的值 * @param fileName properties文件的路径+文件名 * @param key 取得其值的键 * @return key的值 */ public String getValue(String fileName, String key) ...{ try ...{ String value = ""; inputFile = new FileInputStream(fileName); propertie.load(inputFile); inputFile.close(); if(propertie.containsKey(key))...{ value = propertie.getProperty(key); return value; }else return value; } catch (FileNotFoundException e) ...{ e.printStackTrace(); return ""; } catch (IOException e) ...{ e.printStackTrace(); return ""; } catch (Exception ex) ...{ ex.printStackTrace(); return ""; } }//end getValue(...) /** *//** * 清除properties文件中所有的key和其值 */ public void clear() ...{ propertie.clear(); }//end clear(); /** *//** * 改变或添加一个key的值,当key存在于properties文件中时该key的值被value所代替, * 当key不存在时,该key的值是value * @param key 要存入的键 * @param value 要存入的值 */ public void setValue(String key, String value) ...{ propertie.setProperty(key, value); }//end setValue(...) /** *//** * 将更改后的文件数据存入指定的文件中,该文件可以事先不存在。 * @param fileName 文件路径+文件名称 * @param description 对该文件的描述 */ public void saveFile(String fileName, String description) ...{ try ...{ outputFile = new FileOutputStream(fileName); propertie.store(outputFile, description); outputFile.close(); } catch (FileNotFoundException e) ...{ e.printStackTrace(); } catch (IOException ioe)...{ ioe.printStackTrace(); } }//end saveFile(...) public static void main(String[] args) ...{ Configuration rc = new Configuration(".\config\test.properties");//相对路径 String ip = rc.getValue("ipp");//以下读取properties文件的值 String host = rc.getValue("host"); String tab = rc.getValue("tab"); System.out.println("ip = " + ip + "ip-test leng = " + "ip-test".length());//以下输出properties读出的值 System.out.println("ip's length = " + ip.length()); System.out.println("host = " + host); System.out.println("tab = " + tab); Configuration cf = new Configuration(); String ipp = cf.getValue(".\config\test.properties", "ip"); System.out.println("ipp = " + ipp); // cf.clear(); cf.setValue("min", "999"); cf.setValue("max", "1000"); cf.saveFile(".\config\save.perperties", "test"); // Configuration saveCf = new Configuration(); // saveCf.setValue("min", "10"); // saveCf.setValue("max", "1000"); // saveCf.saveFile(".\config\save.perperties"); }//end main() }//end class ReadConfigInfo
==============================================================================
四.小结 通过上面的例子不难看出,在Java中操作配置文件是非常简单的。在一个需要用到大量配置信息的模块或系统里,我们有必要封装一个专门的类来共使用。通过最后的main函数调用,相信大家可以看出该类的用法。不足指出希望大家多多指点。
Java properties文件的操作
----------------------------------------------------
Java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。下面是一个操作Java properties文件的例子,给出了操作方法和properties文件。从中可以看到如何读取properties文件,并应用读取出来的值,是学习操作properties文件的好例子。
一、properties文件
IcisReport.properties
------------------------------------------------------
#################################
# 绩效考核系统的配置文件 #
# 作者: #
# 日期:2010年8月14日 #
#################################
#
# 说明:业务系统TopIcis和报表系统IcisReport是分离的
# 可分开部署到不同的服务器上,也可以部署到同一个服务
# 器上;IcisReprot作为独立的web应用程序可以使用任何
# 的Servlet容器或者J2EE服务器部署并单独运行,也可以
# 通过业务系统的接口调用作为业务系统的一个库来应用.
#
# IcisReport的ip
IcisReport.server.ip=10.43.96.5
# IcisReport的端口
IcisReport.server.port=8080
# IcisReport的上下文路径
IcisReport.contextPath=/IcisReport
------------------------------------------------------
二、操作properties文件的Java方法
下面是一个操作properties文件的方法
/** *//** * @return 获取IcisReport报表应用的URL */ private String getIcisReportURL() ...{ String icisReportURL = ""; // IcisReport报表应用的URL String icisReportServerIP = ""; // IcisReport服务器的IP String icisReportServerPort = ""; // IcisReport服务器的服务端口 String icisReportContextPath = ""; // IcisReport应用的ContextPath Properties prop = new Properties(); InputStream in; try ...{ in = getClass().getResourceAsStream("/IcisReport.properties"); prop.load(in); Set keyValue = prop.keySet(); for (Iterator it = keyValue.iterator(); it.hasNext();) ...{ String key = (String) it.next(); if (key.equals("IcisReport.server.ip")) ...{ icisReportServerIP = (String) prop.get(key); } else if (key.equals("IcisReport.server.port")) ...{ icisReportServerPort = (String) prop.get(key); } else if (key.equals("IcisReport.contextPath")) ...{ icisReportContextPath = (String) prop.get(key); } } } catch (Exception e) ...{ log.error("IO读取出错,找不到IcisReport.properties!"); } if (icisReportServerIP.trim().equals("")) ...{ log .error("请检查配置文件IcisReport.properties中的IcisReport.server.ip项的值是否正确!"); } if (icisReportServerPort.trim().equals("")) ...{ log .error("请检查配置文件IcisReport.properties中的IcisReport.server.port项的值是否正确!"); } if (icisReportServerPort.trim().equals("")) ...{ log .error("请检查配置文件IcisReport.properties中的IcisReport.server.port项的值是否正确!"); } icisReportURL = "http://" + icisReportServerIP.trim() + ":" + icisReportServerPort.trim() + icisReportContextPath.trim(); log.info("获取的icisReportURL=" + icisReportURL); return icisReportURL; }总结:Java的properties文件需要放到classpath下面,这样程序才能读取到,有关classpath实际上就是Java类或者库的存放路径,在Java工程中,properties放到class文件一块。在web应用中,最简单的方法是放到web应用的WEB-INF\classes目录下即可,也可以放在其他文件夹下面,这时候需要在设置classpath环境变量的时候,将这个文件夹路径加到classpath变量中,这样也也可以读取到。在此,你需要对classpath有个深刻理解,classpath绝非系统中刻意设定的那个系统环境变量,WEB-INF\classes其实也是,Java工程的class文件目录也是。<
发表评论
-
springboot 发布
2022-01-08 16:53 136java -jar spring-boot-druid-0.0 ... -
List 边遍历,边删除?
2020-07-17 16:51 397新手常犯的错误 可能很 ... -
servlet 文件上传
2012-08-10 10:52 1094org.apache.commons.fileupload 文 ... -
pdf 简单连接servlet
2012-07-25 10:05 1065protected void doGet(HttpSe ... -
应用 HttpClient 来对付各种顽固的WEB服务器
2012-04-11 17:38 941一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
MAVEN2入门学习心得(4)-知识汇集
2012-01-11 14:16 967一、创建Spring+Hibernate+Activiti+V ... -
MAVEN2入门学习心得(3)-仓库管理器Nexus相关
2012-01-11 14:11 1290以前觉得Nexus搭建太简单,没有留下学习重点,重新温习起来又 ... -
MAVEN2入门学习心得(2)-仓库相关
2012-01-11 14:08 1246MAVEN2的仓库基本可以分为主机仓库、代理仓库、本地仓库。 ... -
MAVEN2入门学习心得(1)-插件相关
2012-01-11 14:02 1114MAVEN2涉及到很多插件,掌握插件的学习方式很重要,要不然接 ... -
restful webserice
2011-08-11 20:06 902package com.onetown.action.admi ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-08-05 10:00 838这个问题是我的工程中 ... -
ibatis 一级缓存 功能
2011-01-28 15:50 2060前几天和朋友讨论数据库Cache的时候,谈到了iBatis框架 ... -
内存溢出的解决
2011-01-28 15:07 1033内存溢出虽然很棘手 ... -
oracle sql 基础
2010-12-25 14:52 839视图; create or replace view my_v ... -
计算 上一个 工作日的 自定义函数
2010-09-06 10:31 1753算法描述 1.获取日期参数,然后自减一 2.判断该日期是否是 ... -
Java 简单 计算任意两个日期之间的工作天数
2010-09-06 09:20 1730主要思路: 对于任意2个日期比如:date_start=201 ... -
java file
2010-09-05 21:37 1242追加文件尾部 public void testPrintWri ... -
验证码
2010-08-31 09:07 1001package com.pa.util; import ... -
java List与Array 转换
2010-08-31 08:57 35420public static void main(String[ ... -
防止 session 被 篡改
2010-06-27 14:27 1698public String login() { ...
相关推荐
通常我们的做法是用配置文件来解决。 各种语言都有自己所支持的配置文件类型。比如 python ,他支持 .ini 文件。因为他内部有一个 ConfigParser 类来支持 .ini 文件的读写,根据该类提供的方法程序员可以 自由的...
。。。
这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。 方法二、 可以使用服务器环境变量 log4j的配置文件支持服务器的vm的...
强大的基于规则的命令行解析器和配置阅读器。 可以使用注释创建选项,也可以使用功能强大的API手动创建选项。 选项被分组到分层名称... XML,INI,PROPERTY配置文件类型。 数据库和一般持久性或所有上述各项的组合。
配置文件init部分声明那些用于建立远程bean和在方法调用中转换bean的类.这部分是可选择性配置的,多数情况下可以不必使用它,如果你想定义一个新的creator或者converter那么就必须在部分中声明,but do double check on...
1.本文代码实现的功能是配置类,指定自定义配置文件的位置和名称,开启对应配置类的属性注入功能,指定配置文件注入属性的前缀,生成getter和setter,toString方法等; 2.该程序代码是使用idea2021.12版本编写的,...
jwx是开源的java公众号开发MVC框架,基于spring配置文件和微信消息或事件注解,通过微信上下文处理一个或多个微信公众号服务请求。目的主要有两个,其一生封装微信请求xml消息为java实体对象,将返回对象转换为xml...
最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 13、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)的...
使用@configurationProperties和@Value注解来获取SpringBoot配置文件上的信息 使用@SpringBootTest来搭建测试环境,使用@AutoConfigueMockMVC类实现Mock http操作 热部署和热加载 热部署代表的是:我们不...
8.5.1 Struts2的配置文件类型 8.5.2 Struts2的包配置 8.5.3 名称空间配置 8.5.4 Action相关配置 8.5.5 通配符实现简化配置 8.5.6 返回结果的配置 8.6 Struts2的开发模式 8.6.1 实现与ServletAPI的交互 86.2 域模型...
1. 模块命名、数据库表命名、域模型命名、各分层的类/方法命名、页面的命名; 模块命名: a. 包命名:com.project_name.module_name.action/service/dao/ws; service的实现都置于...
使用${sys:name-of-system-property}或${env:NAME_OF_ENVIRONMENT}变量将值替换为java系统属性或环境变量。 变量替换在执行json解析器之前运行。 这允许json结构或复杂的值。 有关更多信息和高级用法,请参阅: ...
XDoclet 是一个通用的代码生成实用程序,是一个扩展的Javadoc Doclet引擎,它允许您使用象 JavaDoc 标记之 类的东西来向诸如类、方法...这样,我们就能在使用ant编译工程的同时,使Xdoclet为我们生成相关的配置文件了。
Property 的 SOURCE 属性由 BlazeDS 读取 XML 配置文件获得: 清单 12. 配置 destination 的 id <destination id="flexService"> <properties> <factory>flexFactory</factory> <source>flexService...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
Property 的 SOURCE 属性由 BlazeDS 读取 XML 配置文件获得: 清单 12. 配置 destination 的 id <destination id="flexService"> <properties> <factory>flexFactory</factory> <source>flexService...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步。在很多情况下采用异步往往更有效率。 数据库三大范式? 答:1:确保每列都是不可分割的原子值 2...
使用Jocky非常简单,获得jocky.jar以后,只需要运行java -jar jocky.jar就可以启动Jocky混淆编译器,jocky的命令行参数和javac完全相同,但增加了一个新的参数-scramble,它的用法如下: -scramble 混淆所有...