- 浏览: 234358 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
清林小篆:
引用[/col[size=xx-small][/size]or ...
tomcat ssl配置以及CAS单点登录探究 -
cyxy99:
u012534143 写道我用同样的方法,同样的节点关系,为什 ...
PageRank算法java实现版本 -
cyxy99:
schaha123 写道楼主还有一个问题想请教一下,下面这2段 ...
PageRank算法java实现版本 -
njthnet:
Participle 和 IkParticiple 这2个类找 ...
贝叶斯文本分类 java实现 -
u012534143:
我用同样的方法,同样的节点关系,为什么的得到的结果与您不一样呢 ...
PageRank算法java实现版本
把hibernate中读取properties文件的代码抽取出来了,直接贴代码:
java:
afei.properties文件:
不好意思,这个太久了,你搜一下吧。功能就这么一段代码,copy就可用。
java:
package redolvePlaceHolder; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.Map.Entry; /** * 此类借用了hibernate读取properties文件的代码, * 可以解析占位符比如$ * @author afei * */ public class TestMain { private static final String PLACEHOLDER_START = "${"; private static Properties pro; public static void main(String[] args) { try { pro=buildProperty("afei.properties"); resolvePlaceHolders(pro); printProperties(pro); } catch (IOException e) { e.printStackTrace(); } } public static void printProperties(Properties p){ Iterator it=p.entrySet().iterator(); while(it.hasNext()){ Entry ent=(Entry)it.next(); System.out.println(ent.getKey()+" : "+ent.getValue()); } } /** * 解析占位符 * @param properties */ public static void resolvePlaceHolders(Properties properties) { Iterator itr = properties.entrySet().iterator(); while ( itr.hasNext() ) { final Map.Entry entry = ( Map.Entry ) itr.next(); final Object value = entry.getValue(); if ( value != null && String.class.isInstance( value ) ) { final String resolved = resolvePlaceHolder( ( String ) value ); if ( !value.equals( resolved ) ) { if ( resolved == null ) { itr.remove(); } else { entry.setValue( resolved ); } } } } } /** * 解析占位符具体操作 * @param property * @return */ public static String resolvePlaceHolder(String property) { if ( property.indexOf( PLACEHOLDER_START ) < 0 ) { return property; } StringBuffer buff = new StringBuffer(); char[] chars = property.toCharArray(); for ( int pos = 0; pos < chars.length; pos++ ) { if ( chars[pos] == '$' ) { // peek ahead if ( chars[pos+1] == '{' ) { // we have a placeholder, spin forward till we find the end String systemPropertyName = ""; int x = pos + 2; for ( ; x < chars.length && chars[x] != '}'; x++ ) { systemPropertyName += chars[x]; // if we reach the end of the string w/o finding the // matching end, that is an exception if ( x == chars.length - 1 ) { throw new IllegalArgumentException( "unmatched placeholder start [" + property + "]" ); } } String systemProperty = extractFromSystem( systemPropertyName ); buff.append( systemProperty == null ? "" : systemProperty ); pos = x + 1; // make sure spinning forward did not put us past the end of the buffer... if ( pos >= chars.length ) { break; } } } buff.append( chars[pos] ); } String rtn = buff.toString(); return isEmpty( rtn ) ? null : rtn; } /** * 构造properties文件 * @param path * @throws IOException */ public static Properties buildProperty(String path) throws IOException{ InputStream is=getResourceAsStream("afei.properties"); pro=new Properties(); pro.load(is); return pro; } /** * 构造properties文件的流 * @param resource * @return */ public static InputStream getResourceAsStream(String resource) { String stripped = resource.startsWith("/") ? resource.substring(1) : resource; InputStream stream = null; ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); if (classLoader!=null) { stream = classLoader.getResourceAsStream( stripped ); } if ( stream == null ) { stream = TestMain.class.getResourceAsStream( resource ); } if ( stream == null ) { stream = TestMain.class.getClassLoader().getResourceAsStream( stripped ); } if ( stream == null ) { throw new RuntimeException( resource + " not found" ); } return stream; } /** * 获得系统属性 当然 你可以选择从别的地方获取值 * @param systemPropertyName * @return */ private static String extractFromSystem(String systemPropertyName) { try { return System.getProperty( systemPropertyName ); } catch( Throwable t ) { return null; } } /** * 判断字符串的空(null或者.length=0) * @param string * @return */ public static boolean isEmpty(String string) { return string == null || string.length() == 0; } }
afei.properties文件:
javaeye.url=www.iteye.com javaeye.homepage=duyunfei.iteye.com javaeye.username=${user.name} javaeye.password=123456 home=${user.home} os=${os.name} userdir=${user.dir} javaversion=${java.version} javahome=${java.home} fileseparator=${file.separator} pathseparator=${path.separator} lineseparator=${line.separator}
评论
2 楼
AngelAndAngel
2012-08-31
landy8530 写道
你好,请问一下“把hibernate中读取properties文件的代码抽取出来了,直接贴代码: ”这个hibernate的源码,是在哪个jar包中,源码有吗?类路径是什么?谢谢!
不好意思,这个太久了,你搜一下吧。功能就这么一段代码,copy就可用。
1 楼
landy8530
2012-08-31
你好,请问一下“把hibernate中读取properties文件的代码抽取出来了,直接贴代码: ”这个hibernate的源码,是在哪个jar包中,源码有吗?类路径是什么?谢谢!
发表评论
-
招Java培训老师(还是论坛招人靠谱)
2015-05-10 13:39 556好久没来坛子了,一来就搞这么有目的的事儿。。。 好吧, ... -
动手开发自己的mvc-3----容器该帮我们做什么?(非常的重点)
2013-01-22 13:55 1821注解注入 我们知道,Spring只有一个角色:工厂。这个工厂可 ... -
动手开发自己的mvc-2----完善控制层,提供自动注入和注解上传等功能
2013-01-22 13:44 2574当表单提交的内容过多 ,让懒惰的程序员一个个getPara ... -
动手开发自己的mvc-1----实现初步的控制层,实现各种配置和资源获取
2013-01-22 13:28 2808mvc框架最基础的功能就是跳转,struts2支持注 ... -
动手开发自己的mvc (系列)
2013-01-22 14:08 1930到年尾了,整理了一下我Evernote藏的各种文档,打算把ys ... -
整合了一个小的爬取流程框架
2013-01-08 13:04 1307弄了一个小的爬取流程框架,把之前工作中用到的一些小经验 ... -
Mahout各种推荐器的主要特点
2012-12-06 15:17 2983Mahout有很多推荐的实现,各有特点,在这里一并记录 ... -
怎样通过词频得到这个词频的排序?
2012-12-03 14:35 2070在大规模检索中,我们怎样通过已经的词频得到词频的排序 ... -
drools实现自定义业务规则
2012-10-12 11:49 2849最近做财务相关的积分规则,由于这个功能以后涉及到方方面面 ... -
贝叶斯文本分类 java实现
2012-09-25 15:15 12688昨天实现了一个基于贝叶斯定理的的文本分类,贝叶斯定理假 ... -
前段时间做了一个小型的MVC
2012-07-20 13:23 0前端时间做了一个小型的MVC,麻雀虽小,五脏俱全,目前实现的功 ... -
聚类算法之MST算法 java实现版本
2012-07-17 14:20 2804在介绍最小生成树算法(MST)之前,简单说一下平均链接算 ... -
聚类算法之单链接算法java实现
2012-07-05 10:09 4301聚类算法中基于链接的算法大致有三种:单链接算法(s ... -
朴素贝叶斯分类器
2012-05-20 15:25 0NaiveBayes分类器的优点是能得到已知Y的条件下X的 ... -
PageRank算法java实现版本
2012-05-16 16:03 17451PageRank算法是Google的核心搜索算法,在所有 ... -
聚类算法之kmeans算法java版本
2012-04-22 21:34 20890聚类的意思很明确,物以类聚,把类似的事物放在一起。 ... -
昨天做了个小工具DB转pojo,html,sql
2012-03-21 13:15 1765做dbutils时为了方便就做了个小工具,省点小事儿吧。 -
我这儿的讨论(项目小组)区可以进来了
2012-02-28 10:38 150java项目小组群,前几天清了几个破坏气氛者,和不发言 ... -
智能web探究群组建立了
2011-11-24 12:10 1614最近群组已申请成功 ,地址是http://web.gr ... -
Cas https方式改为http方式
2011-09-24 13:02 2339最近项目要测试,来不及申请等待证书,所以先把项目改为http的 ...
相关推荐
由于.js直接解析.properties文件并不方便,因此通常会使用第三方库,如`js-properties`,它提供了一个简单的API来读取和写入.properties文件。首先,你需要通过npm安装这个库: ``` npm install js-properties ...
在Java编程中,Properties文件是一种常用的配置文件格式,用于存储应用程序的配置参数或者环境设置。这些文件通常以键值对的形式存在,例如...理解并熟练运用Properties文件的读取,能让你的Java程序更加灵活和可配置。
本篇文章将详细探讨如何通过Python来读取并解析`.properties`配置文件。 首先,了解`.properties`文件的格式。这种文件通常用于存储配置信息,其中键值对以等号`=`分隔,每一行代表一个键值对,注释以`#`或`!`开始...
但可以通过第三方库,如`properties-parser`,或者自己编写解析函数来读取并解析文件内容。例如,使用Node.js的`fs`模块和`properties-parser`库: ```javascript const fs = require('fs'); const properties = ...
ConfigFile configfile = ConfigFile.getInstance("ipConfig123.properties"); String ip = configfile.getkeyvalue("ip"); 可以取出ipConfig123.properties 文件中IP的内容
在Android开发中,读取`properties`文件是一个常见的任务,主要用于存储配置信息或者与Java中的`.properties`文件进行交互。`.properties`文件是一种简单的键值对格式,常用于跨平台的配置存储。以下是对这个主题的...
在上述代码中,我们首先创建一个Properties对象`props`,然后通过`load()`方法从指定路径的文件中读取内容。接着,我们遍历Properties对象的键集,将每个键值对添加到HashMap`map`中。这样,我们就得到了一个键值对...
为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行读取大文件,并将其内容解析后存储到数据库中。本文将详细讲解这一过程。 首先,我们需要了解`java.nio`包...
Spring读取Properties文件实例解析 Spring框架中,读取Properties文件是一个非常重要的步骤,Properties文件中存储着应用程序的配置信息,如数据库连接信息、Server配置信息等。在Spring应用程序中,我们可以使用@...
本主题将深入探讨`properties`文件的解析过程,以及如何创建一个工具来帮助我们方便地读取和操作这些文件。 首先,`properties`文件的格式非常简单,由键值对组成,每行一个键值对,键和值之间通过等号(=)或冒号...
下面是一段示例代码,展示了如何加载并读取一个名为`sms.properties`的文件: ```java import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; public class ReadProperties ...
本文将深入解析如何在Spring环境中读取Properties文件,包括配置步骤、代码示例以及注意事项,帮助读者理解和掌握这一核心功能。 ### Spring读取Properties文件的核心知识点 #### 1. **引入...
该类作为Spring的容器后处理器,在应用程序上下文初始化阶段自动读取指定的属性文件,并将其中的键值对映射到配置文件中的占位符上,从而完成具体的配置替换。这种机制特别适用于以下场景: - **数据库配置**:如...
通过以上内容,你应该能够理解并实现Java中读取`properties`配置文件的基本操作。在实际项目中,还可以结合Spring框架或者其他配置管理工具,如Apache Commons Configuration,进一步简化配置文件的管理和使用。
除了`Properties.Settings`类之外,还可以使用`ConfigurationManager`类来读取配置文件中的设置。这种方式适用于那些不希望在代码中硬编码配置项名称的情况。 1. **读取设置**: ```csharp string value = ...
Android读取properties配置文件的实例详解提供了一个非常有用的读取Properties文件的示例代码,并且展示了如何使用读取到的配置信息。这对于Android开发者来说非常有用,可以帮助他们更好地管理应用程序的配置信息。
下面是一个读取`a.properties`并创建一个新的`b.properties`文件的示例代码: ```java import java.io.*; import java.util.*; public class PropertyTest { public static void main(String[] args) { ...
java类读取properties文件,简单易用,方便快捷。
在上面的代码中,我们首先创建了一个BufferedInputStream对象,用于读取Properties文件,然后创建了一个Properties对象,并使用load()方法将Properties文件加载到Properties对象中。 方法二:使用java.util....
在Android应用开发中,我们经常会遇到需要从项目资源文件中读取数据的情况,尤其是非代码文件,如文本、配置文件或JSON数据等。在这种场景下,Android提供了`Assets`目录,用于存放这些非编译型资源。本教程将详细...