- 浏览: 216754 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (121)
- 投资杂记 (6)
- Java技术 (46)
- 记忆 (7)
- 科技随笔 (6)
- 随感 (8)
- 漫谈云计算 (4)
- 生活点滴 (1)
- andriod笔记 (13)
- mysql-数据库 (2)
- OSGI (1)
- Spring Data JPA (1)
- gradle maven nexus (1)
- Java性能优化 多核线程 优化 (2)
- Open-Erp (oe) (8)
- Java技术 camel (1)
- jetty camel dynamicRouter (1)
- karaf (1)
- amqp apollo camel karaf (1)
- Java技术 MyCat (1)
- Java技术 并行调用 线程池 (1)
最新评论
-
白云天:
主机网络端口使用命令: netstat -nplt
centos7.4上安装mysql5.7记录 -
白云天:
登录到 容器内部 docker ps -a查询容器IDsudo ...
docker初探 -
白云天:
export jars to local directory ...
Camel的direct,Bean测试 -
白云天:
location /esb/ { proxy_ ...
Camel的direct,Bean测试 -
白云天:
centos 中添加 shell_script.sh 为开机启 ...
Camel的direct,Bean测试
//注意:我的博客中的代码为自己所写,大家可以免费使用,但不要...
package com.cc.pub;
import java.util.*;
public class Config{
private Hashtable<String,String> table;
private String sConfig;
protected Config(){
table=new Hashtable<String,String>();
}
public Config(String s){
this();
sConfig=s;
}
public int size(){
Enumeration e=table.keys();
int i=0;
while(e.hasMoreElements()){
i++;
e.nextElement();
}
return i;
}
public void clear(){
if(table!=null){
table.clear();
}
}
public int readConfig(){
int iRet=0;
table.clear();
ResourceBundle r=null;
try{
r=ResourceBundle.getBundle(sConfig);
Enumeration ks=r.getKeys();
String sKey,sValue;
while(ks.hasMoreElements()){
sKey=(String)(ks.nextElement());
sValue=r.getString(sKey);
sValue=sValue.trim();
if(sValue!=null && sValue.length()>0){
sValue=Tools.a2u(sValue);
put(sKey,sValue);
}
}
}catch(Exception e){
iRet=-1;
}
r=null;
return iRet;
}
public void put(String sKey,String sValue){
if(sKey==null || sValue==null) return ;
table.put(sKey.toLowerCase(),sValue);
}
public void list(){
Enumeration e=table.keys();
String s1,s2;
while(e.hasMoreElements()){
s1=(String)(e.nextElement());
s2=get(s1);
System.out.println("["+s1+"="+s2+"]");
}
}
public String get(String sKey){
//System.out.println("------Config_getString="+sKey);
if(sKey==null) return null;
sKey=sKey.toLowerCase();
Object o=table.get(sKey);
return (String)o;
}
public int getInt(String sKey){
//System.out.println("------Config_getInt="+sKey);
String s=get(sKey);
//System.out.println("------Config_getInt="+sKey+",v="+s);
int i=0;
try{
i=Integer.parseInt(s);
}catch(Exception e){}
return i;
}
public boolean getBool(String sKey){
String s=get(sKey);
if(s!=null && s.equalsIgnoreCase("true")){
return true;
}
int i=getInt(sKey);
if(i>0){
return true;
}
return false;
}
public static void main(String []args){
Config c=new Config(args[0]);
c.readConfig();
c.list();
}
}
//上面这个类是读取 properties 文件的,
//下面的类可读取自定义的配置文件
package com.cc.pub;
import java.io.*;
public class XConfig extends Config{
private String sFileName;
public XConfig(String sFile){
sFileName=sFile;
}
public int readConfig(){
clear();
int i=size();
try{
int iCut=0;
RandomAccessFile f=new RandomAccessFile(sFileName,"r");
String sLine="";
String sBuf="";
boolean bNew=true;
while(sLine!=null){
sLine=f.readLine();
if(sLine==null) break;
sLine=Tools.a2u(sLine);//编码转换
sLine=Tools.trim(sLine); //空格等去除
if(sLine.startsWith("#")){ //忽略 "#" 开始的注释行
continue;
}
if(sLine.startsWith("//")){ //忽略 "//" 开始的注释行
continue;
}
if(sLine.length()==0){ //忽略空行
continue;
}
bNew=true;
if(sLine.startsWith("/")){ //表示续前行
if(sLine.length()>1){
sLine=sLine.substring(1);
//sLine=Tools.rtrim(sLine);//删除 "/" 之后的空格
}else{
sLine="";
}
bNew=false;
}
iCut=sLine.indexOf("//");
if(iCut>0){
sLine=sLine.substring(0,iCut); //删除本行后面的注释
sLine=Tools.rtrim(sLine);
if(sLine.length()==0){ //如果为空行,继续
continue;
}
}
if(bNew){
addItem(sBuf);
sBuf=sLine;
}else{
sBuf+=sLine;
}
}
addItem(sBuf);
f.close();
i=size();
}catch(Exception e){
i=-1;
e.printStackTrace();
}
return i;
}
private void addItem(String sMsg){
if(sMsg==null || sMsg.length()==0){
return;
}
int i=sMsg.indexOf("=");
if(i<1 || i==sMsg.length()-1){
return;
}
String sKey=sMsg.substring(0,i);
String sValue=sMsg.substring(i+1);
sKey=Tools.trim(sKey);
sValue=Tools.trim(sValue);
sValue=Tools.replace(sValue,"\\r","\r");
sValue=Tools.replace(sValue,"\\n","\n");
put(sKey,sValue);
}
public static void main(String []args){
XConfig xc=new XConfig(args[0]);
xc.readConfig();
xc.list();
//System.out.println("["+Tools.rtrim(" Hello ")+"]");
//System.out.println("["+Tools.ltrim(" Hello ")+"]");
}
}
//一个例子(配置文件)
#UDP中的信息长度最大字节数
udp_data_len=30000
#UDP超时长度(毫秒)
udp_timeout=512
#本地UDP短口号
udp_port=3000
#服务器所在的IP地址
server_ip=192.168.0.123
#服务器服务端口号
server_port=8001
#信息尝试发送次数
try_num=3
#每次尝试之间的时间间隔(秒)
try_period=10
//注释
cc_a=hello,how are you //note
/ and you! //note 继续
package com.cc.pub;
import java.util.*;
public class Config{
private Hashtable<String,String> table;
private String sConfig;
protected Config(){
table=new Hashtable<String,String>();
}
public Config(String s){
this();
sConfig=s;
}
public int size(){
Enumeration e=table.keys();
int i=0;
while(e.hasMoreElements()){
i++;
e.nextElement();
}
return i;
}
public void clear(){
if(table!=null){
table.clear();
}
}
public int readConfig(){
int iRet=0;
table.clear();
ResourceBundle r=null;
try{
r=ResourceBundle.getBundle(sConfig);
Enumeration ks=r.getKeys();
String sKey,sValue;
while(ks.hasMoreElements()){
sKey=(String)(ks.nextElement());
sValue=r.getString(sKey);
sValue=sValue.trim();
if(sValue!=null && sValue.length()>0){
sValue=Tools.a2u(sValue);
put(sKey,sValue);
}
}
}catch(Exception e){
iRet=-1;
}
r=null;
return iRet;
}
public void put(String sKey,String sValue){
if(sKey==null || sValue==null) return ;
table.put(sKey.toLowerCase(),sValue);
}
public void list(){
Enumeration e=table.keys();
String s1,s2;
while(e.hasMoreElements()){
s1=(String)(e.nextElement());
s2=get(s1);
System.out.println("["+s1+"="+s2+"]");
}
}
public String get(String sKey){
//System.out.println("------Config_getString="+sKey);
if(sKey==null) return null;
sKey=sKey.toLowerCase();
Object o=table.get(sKey);
return (String)o;
}
public int getInt(String sKey){
//System.out.println("------Config_getInt="+sKey);
String s=get(sKey);
//System.out.println("------Config_getInt="+sKey+",v="+s);
int i=0;
try{
i=Integer.parseInt(s);
}catch(Exception e){}
return i;
}
public boolean getBool(String sKey){
String s=get(sKey);
if(s!=null && s.equalsIgnoreCase("true")){
return true;
}
int i=getInt(sKey);
if(i>0){
return true;
}
return false;
}
public static void main(String []args){
Config c=new Config(args[0]);
c.readConfig();
c.list();
}
}
//上面这个类是读取 properties 文件的,
//下面的类可读取自定义的配置文件
package com.cc.pub;
import java.io.*;
public class XConfig extends Config{
private String sFileName;
public XConfig(String sFile){
sFileName=sFile;
}
public int readConfig(){
clear();
int i=size();
try{
int iCut=0;
RandomAccessFile f=new RandomAccessFile(sFileName,"r");
String sLine="";
String sBuf="";
boolean bNew=true;
while(sLine!=null){
sLine=f.readLine();
if(sLine==null) break;
sLine=Tools.a2u(sLine);//编码转换
sLine=Tools.trim(sLine); //空格等去除
if(sLine.startsWith("#")){ //忽略 "#" 开始的注释行
continue;
}
if(sLine.startsWith("//")){ //忽略 "//" 开始的注释行
continue;
}
if(sLine.length()==0){ //忽略空行
continue;
}
bNew=true;
if(sLine.startsWith("/")){ //表示续前行
if(sLine.length()>1){
sLine=sLine.substring(1);
//sLine=Tools.rtrim(sLine);//删除 "/" 之后的空格
}else{
sLine="";
}
bNew=false;
}
iCut=sLine.indexOf("//");
if(iCut>0){
sLine=sLine.substring(0,iCut); //删除本行后面的注释
sLine=Tools.rtrim(sLine);
if(sLine.length()==0){ //如果为空行,继续
continue;
}
}
if(bNew){
addItem(sBuf);
sBuf=sLine;
}else{
sBuf+=sLine;
}
}
addItem(sBuf);
f.close();
i=size();
}catch(Exception e){
i=-1;
e.printStackTrace();
}
return i;
}
private void addItem(String sMsg){
if(sMsg==null || sMsg.length()==0){
return;
}
int i=sMsg.indexOf("=");
if(i<1 || i==sMsg.length()-1){
return;
}
String sKey=sMsg.substring(0,i);
String sValue=sMsg.substring(i+1);
sKey=Tools.trim(sKey);
sValue=Tools.trim(sValue);
sValue=Tools.replace(sValue,"\\r","\r");
sValue=Tools.replace(sValue,"\\n","\n");
put(sKey,sValue);
}
public static void main(String []args){
XConfig xc=new XConfig(args[0]);
xc.readConfig();
xc.list();
//System.out.println("["+Tools.rtrim(" Hello ")+"]");
//System.out.println("["+Tools.ltrim(" Hello ")+"]");
}
}
//一个例子(配置文件)
#UDP中的信息长度最大字节数
udp_data_len=30000
#UDP超时长度(毫秒)
udp_timeout=512
#本地UDP短口号
udp_port=3000
#服务器所在的IP地址
server_ip=192.168.0.123
#服务器服务端口号
server_port=8001
#信息尝试发送次数
try_num=3
#每次尝试之间的时间间隔(秒)
try_period=10
//注释
cc_a=hello,how are you //note
/ and you! //note 继续
发表评论
-
docker初探
2017-08-17 16:49 6231、docker , 先从仓库中下载一个和自己的 ... -
java-nio的hello-word
2017-04-27 17:55 504重点注意:有说明的地 ... -
Java NIO 系列教程
2015-07-02 14:28 883Java NIO提供了与标准IO不同的IO工作方式: ... -
随手记录-设计目录中的jar到类路径
2015-05-07 18:01 790@echo off color 7 SetLocal Enab ... -
gradle和maven结合nexus服务解决jar包依赖
2014-07-17 11:00 16341、架设 nexus nexus 的基础不多讲了,去官网下载 ... -
利用注解定义SQL语句,实现类是iBatis的数据库访问
2014-06-25 18:04 3539import java.lang.annotation.*; ... -
使用 Spring Data JPA 简化 JPA 开发(Spring Data JPA 开发指南)
2014-06-11 15:46 709从一个简单的 JPA 示例开始 本文主要讲述 Spring D ... -
My-sql批量更新或者插入的SQL
2013-09-25 17:03 1385My-sql批量更新或者插入的SQL,高效, MyBatis中 ... -
加减的艺术用于工作学习管理
2013-02-17 17:12 745回顾做过的事情,总结起来,就是先加,后减,再加。 不是吗? ... -
记录到内存的Logger,可用于web动态显示内容的来源
2013-02-17 09:35 1833import java.io.ByteArrayOutputS ... -
一个表达式计算工具
2012-11-21 12:57 782可以计算: 加减乘除,余数,括号 , 结果为整数,操作数全部为 ... -
ms-sql-server获取某表的当前可用的自增值
2012-01-10 09:46 920执行 SQL : select IDENT_CURRENT( ... -
一个加密数字和逗号且减少空间的算法
2010-11-09 17:19 1336注意本算法只能处理由 0,1,2,3,4,5,6,7,8, ... -
云计算笔记
2010-09-01 14:13 809最近得闲,去了解下 hadoop系统,下面为过程记录: 1、 ... -
在MySql上实现Replication(Master 与 Slave 数据同步)
2010-04-23 17:54 1149假设这里有三个数据库分别为 d1、d2、d3,其中d ... -
在一台windows机器上如何安装多个Mysql
2010-04-23 17:41 34161、将mysql程序直接拷贝到某个目录(假设目录为d:\mys ... -
MySQL复制配置步骤文档(主从备份机制)
2010-03-30 10:14 1879本文档主要对一个主服务器,一个从服务器(简称一主一从)的复制配 ... -
如何得到SqlServer的自增ID
2010-03-16 11:09 5957转自:http://hi.baidu.com/vc60/blo ... -
J2EE集群
2010-01-04 15:29 3632对于理解J2EE集群技术不 ... -
JDBC 调用存储过程的整理
2010-01-04 14:30 1054String sqls = this.getSqls().ge ...
相关推荐
【Java_Properties_类读取配置文件信息】 在软件开发中,配置文件是必不可少的,因为它们允许我们灵活地管理程序中的可变参数,而无需修改源代码。Java 支持使用 `.properties` 文件作为其标准配置文件格式,这得益...
`properties`文件是Java开发中常见的配置文件格式,它允许开发者将应用程序的配置参数存储在一个独立的文本文件中,便于管理和维护。在SpringBoot框架中,`properties`文件的读取和管理变得更加简便,这得益于...
.properties文件是Java中的配置文件,它以键值对的形式存储数据,如`key=value`。这些文件主要用于存储应用的配置信息,易于读写,并且支持国际化和本地化。 2. **浏览器限制** JavaScript在浏览器环境中默认没有...
这个类继承了`Dictionary`类,并提供了`load()`和`store()`等方法来读取和写入配置文件。 **基本用法** 首先,创建一个配置文件,例如`config.properties`,内容如下: ``` database.url=jdbc:mysql://localhost:...
最基础的方式是使用Java的I/O流来读取文本配置文件(通常是.properties格式)。例如,`java.io.FileInputStream`可以用来打开文件,然后`java.util.Properties`类可以加载并解析配置文件。以下是一个简单的示例: ...
通过`Properties`类,我们可以读取配置文件信息,并将其存储在Java类中的变量中。 在读取配置文件信息时,需要注意以下几点: 1. 配置文件的路径:配置文件的路径需要正确,否则将无法读取配置文件信息。通常情况...
`Properties`类是`java.util`包下的一个类,它专门用来处理文本配置文件。这类文件通常遵循“键=值”的格式,例如: ``` # info.properties url=http://example.com name=John Doe ``` #### 三、读取Properties...
我们可以使用`java.util.Properties`类来读取和写入此类文件。`ExecutePropertiesUtil.java`文件可能展示了如何使用Properties类的示例代码: ```java import java.io.FileInputStream; import java.io....
以下是一个使用`Properties`类读取.properties配置文件的基本步骤: 1. 首先,导入所需的库: ```java import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; ``` 2. 创建一...
要读取这样的配置文件,我们可以使用Java的`java.util.Properties`类。以下是如何使用该类的步骤: 1. 加载配置文件:首先,我们需要创建一个`Properties`对象,然后加载配置文件。这可以通过`InputStream`完成,...
ParseXML类是XML配置文件的读取器,该类使用SAXParser解析XML文件并将配置信息存放在Properties对象中。 ParseXML类中,我们首先创建了一个SAXParserFactory对象,并使用该对象创建了一个SAXParser对象。然后,我们...
在Java编程中,Properties文件是用于存储配置信息的文本文件,通常以键值对的形式存在。这些文件在程序运行时可以被加载并解析,以便应用根据配置内容进行动态行为调整。本篇将深入探讨如何使用Java来实现Properties...
在Java编程中,Properties类是用于处理属性列表的,这些属性列表可以是包含键值对的文本文件,或者是在程序的类路径(classpath)中作为资源文件存在。本篇文章将详细探讨如何使用Properties类来读取资源文件,以及...
在IT行业中,保存和读取配置文件是软件开发中的一项基本任务。配置文件通常用于存储应用程序的设置、选项以及变量,使得程序可以根据用户的需求或环境条件进行个性化调整。这一过程对于提升用户体验和软件的可定制性...
Android读取properties配置文件的实例详解中还涉及到了一些其他知识点,例如Android的Context类、Java的Properties类、InputStream对象等。这些知识点对于Android开发者来说非常重要,可以帮助他们更好地理解...
使用`Properties`类可以方便地读取和操作这些文件,而现代IDE和版本控制系统则提供了强大的辅助功能,以提高开发效率和代码质量。在实际应用中,应考虑使用框架提供的高级特性,以实现更灵活和自动化的配置管理。
总结来说,Java中读取配置文件是一个基本但至关重要的操作,使用`Class.getResourceAsStream`结合`Properties`类可以轻松完成。确保正确设置配置文件的路径,以及在使用完毕后关闭`InputStream`,以避免资源泄露。...
在Java编程中,Properties文件是用于存储配置信息的文本文件,通常包含键值对,其中键和值之间用等号(=)或冒号(:)分隔。当我们需要处理包含中文键的Properties文件时,可能会遇到编码问题,因为默认的ISO-8859-1...
在Java编程中,处理配置文件通常是一个常见的任务,特别是.properties文件。这些文件用于存储应用程序的配置参数,便于管理和更改。本篇文章将详细讲解如何读取.properties文件,将其内容转化为Map对象,以及如何将...