- 用 于
- 游戏术语
- 定 义
- 任何装饰、布置用的可移动物件
- 分 类
- 消耗品、装备品和任务品
- 中文名
- 道具
- 简 写
- PROPS
- 外文名
- PROPERTIES
-
Properties
2019-05-23 23:21:46Properties含义:特点:Properties作为容器的API操作 含义: Properties是Map集合中的一个实现类 特点: 1.按键值对的形式存放元素,但键与值都是字符串 ; 2. Properties 可以直接操作文件,即可以把Properties存放...Properties
含义:
Properties是Map集合中的一个实现类
特点:
1.按键值对的形式存放元素,但键与值都是字符串 ;
2. Properties 可以直接操作文件,即可以把Properties存放的内容放置到文件中或者从文件中读取内容放置到Properties的容器中;
3. 是数据持久化的一种手段Properties作为容器的API操作
Properties props=new properties();//产生一个容器对象
1.从文件中读取数据:props.load(new FileInputStream("文件名"));//调用load方法直接把properties文件中的数据以键值对的形式读入到Properties对象中 //因为最终要返回一个Map对象,所以要先new出一个Map容器对象,准备用来装从Properties中拿过来的数据。 HashMap<String, StudentBean> stuMap = new HashMap<>(); //从Properties文件的数据结构可以看出来,所有的数据即在Properties的键当中又在值当中; 遍历键,通过键可以得到对应的值! Set 键 = props.keySet();//所有的Map都提供keySet方法获取所有的键,被装入到一个Set集合中! 再根据键值对进行遍历得出所有值: //因为Properties不支持泛型,所以只能交给Object for(Object 对应值 : 键) { 得到对应值进行相应格式的拆分,得到想要的值; }
2.将数据存储到文件中:
//产生一个Properties对象---作为一个容器,然后只有它可以操作Properties的数据存储到文件中 //最后把构造好的字符串以正确的键值对形式放入到props当中 props.setProperty(key, value); //调用Properties的store方法,将该Properties容器的数据自动写入到指定文件中 props.store(new FileOutputStream("students.properties"), " ");
props.setProperty(“键名”,“值”);//容器中放置对象
props.setProperty(“键名”,“值”);//修改数据要求键在数据中存在‘
props.getProperty(“键名”,“值”);//获取数据通过键获取值
props.remover(“键名”);//删除数据
props.size();//获取元素个数
遍历:
Set 键 = props.keySet();//遍历所有的键
Collection 值 = props.values();//遍历所有的值,得到所有的值放在值集合中 -
Java中的Properties类详解
2018-09-17 20:26:231.Properties类是什么? Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离...1.Properties类是什么?
Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。
2.API 中的Properties类
3.常用的方法
getProperty(String key) 在此属性列表中搜索具有指定键的属性。如果在此属性列表中找不到该键,则会检查默认属性列表及其默认值(递归)。如果未找到该属性,则该方法返回默认值参数。
list(PrintStream out) 将此属性列表打印到指定的输出流。此方法对于调试很有用。
load(InputStream inStream) 从输入字节流中读取属性列表(键和元素对)。输入流采用加载(Reader)中指定的简单的面向行的格式,并假定使用ISO 8859-1字符编码;即每个字节是一个Latin1字符。不在Latin1中的字符和某些特殊字符在使用Unicode转义符的键和元素中表示。 此方法返回后,指定的流仍保持打开状态。
setProperty(String key, String value) 调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键值对。
store(OutputStream out, String comments) 将此Properties表中的此属性列表(键和元素对)以适合使用load(InputStream)方法加载到Properties表的格式写入输出流。 此Properties方法不会写出此Properties表的defaults表中的属性(如果有)。
storeToXML(OutputStream os, String comment, String encoding) 使用指定的编码发出表示此表中包含的所有属性的XML文档。
clear() 清除此哈希表,使其不包含任何键。
stringPropertyNames() 返回此属性列表中的一组键,其中键及其对应的值是字符串,如果尚未从主属性列表中找到相同名称的键,则包括默认属性列表中的不同键。键或键不是String类型的属性将被省略。
API 详解:
代码实践:
打印信息:
读取配置文件
class myProperties {
public static void main(String[] args) throws Exception {
Properties pps = new Properties();
pps.load(new FileInputStream("file.properties"));
Enumeration fileName = pps.propertyNames();
while (fileName.hasMoreElements()) {
String strKey = (String) fileName.nextElement();
String strValue = pps.getProperty(strKey);
System.out.println(strKey + "," + strValue);
}
}
}创建一个配置文件 file.properties
age = 25
address = beijing
使用Properties配置PageHelper插件
@Configuration public class PageHelperConfig { @Bean public PageHelper pageHelper(){ PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); // 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 properties.setProperty("offsetAsPageNum","true"); // 查询总条数 properties.setProperty("rowBoundsWithCount","true"); /** * 配置合理分页,如果为turn,pageNum<1会查询第一页, * 如果pageNum>pages会查询最后一页,为false则返回空 */ properties.setProperty("reasonable","true"); // 数据库方言 properties.setProperty("dialect","mysql"); pageHelper.setProperties(properties); return pageHelper; } }
Java API 中文在线
-
Spring加载properties文件的两种方式
2016-05-10 19:47:56在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加...我的个人博客站点:http://www.itcodai.com
在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便。在Spring中也可以这么做,而且Spring有两种加载properties文件的方式:基于xml方式和基于注解方式。下面分别讨论下这两种方式。
1. 通过xml方式加载properties文件
我们以Spring实例化dataSource为例,我们一般会在beans.xml文件中进行如下配置:
<!-- com.mchange.v2.c3p0.ComboPooledDataSource类在c3p0-0.9.5.1.jar包的com.mchange.v2.c3p0包中 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shop" /> <property name="user" value="root" /> <property name="password" value="root" /> </bean>
现在如果我们要改变dataSource,我们就得修改这些源代码,但是我们如果使用properties文件的话,只需要修改那里面的即可,就不管源代码的东西了。那么如何做呢?
Spring中有个<context:property-placeholder location=""/>标签,可以用来加载properties配置文件,location是配置文件的路径,我们现在在工程目录的src下新建一个conn.properties文件,里面写上上面dataSource的配置:
dataSource=com.mchange.v2.c3p0.ComboPooledDataSource driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc\:mysql\://localhost\:3306/shop user=root password=root
现在只需要在beans.xml中做如下修改即可:
<context:property-placeholder location="classpath:conn.properties"/><!-- 加载配置文件 --> <!-- com.mchange.v2.c3p0.ComboPooledDataSource类在c3p0-0.9.5.1.jar包的com.mchange.v2.c3p0包中 --> <bean id="dataSource" class="${dataSource}"> <!-- 这些配置Spring在启动时会去conn.properties中找 --> <property name="driverClass" value="${driverClass}" /> <property name="jdbcUrl" value="${jdbcUrl}" /> <property name="user" value="${user}" /> <property name="password" value="${password}" /> </bean>
<context:property-placeholder location=""/>标签也可以用下面的<bean>标签来代替,<bean>标签我们更加熟悉,可读性更强:
<!-- 与上面的配置等价,下面的更容易理解 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <!-- PropertyPlaceholderConfigurer类中有个locations属性,接收的是一个数组,即我们可以在下面配好多个properties文件 --> <array> <value>classpath:conn.properties</value> </array> </property> </bean>
虽然看起来没有上面的<context:property-placeholder location=""/>简洁,但是更加清晰,建议使用后面的这种。但是这个只限于xml的方式,即在beans.xml中用${key}获取配置文件中的值value。
2. 通过注解方式加载properties文件
还有一种就是通过注解的方式,在java代码中使用@Value注解来加载配置文件中的值。
我们来看一个例子:假如我们要在程序中获取某个文件的绝对路径,我们很自然会想到不能在程序中写死,那么我们也可以卸载properties文件中。还是在src目录下新建一个public.properties文件,假设里面写了一条记录:
filePath=E\:\\web\\apache-tomcat-8.0.26\\webapps\\E_shop\\image
如果想在java代码中通过注解来获取这个filePath的话,首先得在beans.xml文件中配置一下注解的方式:
<!-- 第二种方式是使用注解的方式注入,主要用在java代码中使用注解注入properties文件中相应的value值 --> <bean id="prop" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"><!-- 这里是PropertiesFactoryBean类,它也有个locations属性,也是接收一个数组,跟上面一样 <array> <value>classpath:public.properties</value> </array> </property> </bean>
现在我们可以在java代码中使用注解来获取filePath的值了:
@Component("fileUpload") public class FileUploadUtil implements FileUpload { private String filePath; @Value("#{prop.filePath}") //@Value表示去beans.xml文件中找id="prop"的bean,它是通过注解的方式读取properties配置文件的,然后去相应的配置文件中读取key=filePath的对应的value值 public void setFilePath(String filePath) { System.out.println(filePath); this.filePath = filePath; }
注意要有set方法才能被注入进来,注解写在set方法上即可。在setFilePath方法中通过控制台打印filePath是为了在启动tomcat的时候,观察控制台有没有输出来,如果有,说明Spring在启动时,已经将filePath给加载好了,我们看一下控制台的启动信息:
以上就是Spring加载properties配置文件的两种方式。实际上,上面基于xml方式中的PropertyPlaceholderConfigurer类和这里基于注解方式的PropertiesFactoryBean类都是继承PropertiesLoaderSupport,都是用来加载properties配置文件的。
如有错误之处,欢迎留言指正~
欢迎关注我的微信公众号,领取免费学习资源:
_____________________________________________________________________________________________________________________________________________________
-----乐于分享,共同进步!
-----更多文章请看:http://blog.csdn.net/eson_15
-
Properties读取properties文件
2016-08-22 15:51:12使用java自带的properties来读取properties在编写一个项目时,我们会时常修改一些配置变量来适应不同的运行环境,同时也让用户能够脱离程序去修改相关的变量设置。通常我们将这些变量定义在后缀名为properties的文件中,文件内容的格式为“键=值”,文本用“#”注释。而java提供了java.util.Properties来读取这些文件,具体Properties参见凭海临风的博客:http://www.cnblogs.com/bakari/p/3562244.html它提供了几个主要的方法:
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中的值,首先要用Properties的方法load(InputStream inStream)来装载配置文件从而获取配置文件中的键值对,形成属性列表,其次用getProperty(String key)来获取属性列表中对应的值。此次主要有两种读取.properties文件的方法(在Java Project中):jdbc.properties:driverClass = com.mysql.jdbc.Driver jdbcURL=jdbc:mysql://127.0.0.1:3306/protest?useUnicode=true&characterEncoding=utf-8 user = root password = root
1.使用FileInputStream("资源名称绝对路径")public Properties propertiesFromFile() throws FileNotFoundException{ properties = new Properties(); InputStream in = null; try{ in = new BufferedInputStream(new FileInputStream(propertiesPath)); properties.load(in); }catch (FileNotFoundException e){ e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } return properties; }
2.使用getClass.getResourceAsStream("资源名称") -推荐public Properties propertiesFromClass(){ properties = new Properties(); InputStream in1 = this.getClass().getResourceAsStream(propertiesPath); InputStream is=PropertiesLoad.class.getResourceAsStream("/jdbc.properties"); try { properties.load(in1); } catch (IOException e) { e.printStackTrace(); }finally{ try { in1.close(); } catch (IOException e) { e.printStackTrace(); } } return properties; }
最后使用getProperty(key)获取properties中的值:PropertiesLoad proLoad = new PropertiesLoad(propertiesPath); String DriverClass = proLoad.propertiesFromClass().getProperty("driverClass");
对于在程序中对properties文件的修改
结果PropertiesLoad proLoad = new PropertiesLoad(propertiesPath); Properties pro = proLoad.propertiesFromClass(); OutputStream out = new FileOutputStream(DBconnect.class.getResource("/jdbc1.properties").toString().substring(6)); pro.setProperty("password", password+"1"); try { pro.store(out, "ceshiwenjian01"); } catch (IOException e) { e.printStackTrace(); }
jdbc1.properties:
#ceshiwenjian01 #Tue Aug 30 16:06:07 GMT+08:00 2016 driverClass=com.mysql.jdbc.Driver user=root password=root1 jdbcURL=jdbc\:mysql\://127.0.0.1\:3306/protest?useUnicode\=true&characterEncoding\=utf-8
在上述的例子中,如果将Properties pro = proLoad.propertiesFromClass();换成Properties pro = new Properties();那么最后jdbc1.properties中的键值对只剩下password。所以所谓的setProperties(key,value)是将键值对写放入pro中,然后pro通过store将所有的pro里的键值对写入到文件中。上例中最后呈现的结果类似于改变键值对的值是因为pro装载了原来的键值对。注:在我们知道如何读写一个属性文件之后,我们仍然还有很多需要注意的问题,因为load和store方法都是按照ISO-8859-1的编码方式读写属性流文件的,而ILatin1 的字符和某些特殊字符,而对于非Latin1 的字符和某些特殊字符,则要使用与字符和字符串字面值所用的类似转义序列,以值和元素的形式来表示它们。所以当我们在处理中文时,不可以在直接修改属性文件时,将中文的值赋予给属性,而是要在JAVA程序中通过setProperty方法给属性赋予中文的值,因为这样store会将中文转换成 unicode码,在读取时系统会将读取到的unicode码按系统的编码打印出来,对于中文系统,通常是GBK码,这样中文才能够正常显示。 -
Properties类简介
2019-09-09 17:04:10Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去... -
gradle-wrapper.properties中各属性的含义
2017-02-13 00:02:57gradle-wrapper.properties中各属性的含义1. gradle-wrapper.properties每一个用gradle编译的工程,都会有一个gradle\wrapper目录。该目录下有2个文件:gradle-wrapper.jar和gradle-wrapper.properties。其中gradle-... -
xml读取properties配置文件,web.xml读取properties,properties格式,properties在eclipse创建
2017-09-19 13:32:02xml读取properties配置文件,web.xml读取properties,properties格式,properties在eclipse创建 版权声明:本文为博主原创文章,转载请注明:http://blog.csdn.net/android_koukou 一.创建properties配置文件... -
gradle中的properties文件
2018-01-21 20:52:58本文侧重于了解自定义properties文件,以及properties中的数据格式,在gradle中如何使用等知识点。 一、概述 在Android Studio 创建一个项目的时候,rootProject下面会生成gradle.properties和local.properties... -
properties文件及ResourceBundle读取properties文件分析
2016-07-11 11:46:10java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是 "键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程... -
Spring Boot读取properties配置文件中的数据
2018-08-23 00:09:07读取properties配置文件时,默认读取的是application.properties。 application.properties: demo.name=Name demo.age=18 Java代码: import org.springframework.beans.factory.annotation.Value;... -
springboot配置文件application-dev.properties,application-prod.properties,application-test....
2019-08-06 17:28:33application.properties application-dev.properties 开发环境 application-prod.properties 运行环境 application-test.properties 测试环境 在application.properties中配置内容 spring.profiles.active=dev ... -
system properties和environment properties
2013-09-24 11:23:11原来我一直都混淆了system properties和environment properties。今天终于搞清楚了,记录一下 一、system properties 这里的system指的不是OS,而是JVM system system properties通过 System.getProperty(key);... -
Properties 配置文件
2018-06-14 20:27:50第一波: 在src文件下new一个file,命名为XXX.propertiesJava中的一些键值对的配置文件专门提供这样的类和文件名Properties 文件名后缀Properties读取Properties文件的类第二波: 读取配置配置文件:1.... -
Eclipse安装propertie,eclipse.properties插,Properties Edito,properties插件,properties预览
2015-05-15 22:54:15eclipse中装properties预览插件,一共两种方法,第一种是自己装Properties Edito成功的方法,第二种是别人的方法 -
properties简述(idea创建properties文件)
2019-02-25 17:14:21Properties(Java.util.Properties),主要用于读取Java的配置文件配置文件中很多变量是经常改变的。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息... -
yaml文件转properties和properties转yaml
2019-03-28 10:19:00yaml文件转properties和properties转yaml 首先要引入依赖 <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson... -
Properties 类的详细使用(十三)
2019-06-26 19:56:35我把你的头像,设置成我的...Properties 类位于 java.util.Properties ,是Java 语言的配置文件所使用的类, Xxx.properties 为Java 语言常见的配置文件,如数据库的配置 jdbc.properties, 系统参数配置 system.p... -
eclipse properties 插件
2016-05-21 10:11:10eclipse properties 插件安装,分享牛,分享牛原创。eclipse properties 编辑器使用。eclipse因为是原生的,可能集成的插件不多,需要自己手动安装。eclipse properties插件的坐标为:Name: Properties ... -
Properties介绍入门。利用Properties存储键值对。Properties与流结合使用
2017-10-26 21:17:391.1 Properties介绍 Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 特点: 1、Hashtable的子类,map集合中的方法都可以用。 2、... -
log4j.properties配置详解与实例
2016-02-22 17:16:49最近使用log4j写log时候发现网上的写的都是千篇一律,写的好的嘛不全,写的全一点的嘛没有一点格式,看着累。这里把网上收集到的整理了一下,并且全部都在机器上测试成功了。这么好的文档估计没有了吧?... -
Properties类简介 及 IDEA properties文件配置方法
2018-04-07 21:48:16Properties类 简要概括: Properties类是 键和值均为字符串的可以永久存储到文件中的key-value集合 java.util.Properties类表示一组持久的属性,是Hashtable的子类。 Properties可以保存到流中或从流中加载,可以... -
Eclipse集成properties插件, properties文件可显示中文
2018-05-24 11:37:21properties文件作为配置文件的重要性自然不用多说,properties里面可以有中文,但是需要安装插件才可以显示。 1.help->Eclipse Marketplace->Find 2.搜索properies,选择properties Install下载安装重启。 ... -
Android SystemProperties
2019-03-07 10:35:42Android SystemProperties 简单用例: import android.os.SystemProperties; boolean xxx = SystemProperties.getBoolean("persist.debug.xxx", false); boolean xxx = "1".equals(System... -
Properties介绍与使用
2020-05-13 11:51:55Properties可以保存到流中或者从流中加载 package com.testIO; import java.util.*; /** * @author 林高禄 * @create 2020-05-13-11:20 */ public class PropertiesDemo { public static void main(String... -
解决Properties乱码
2017-12-12 13:30:10public class ConfigUtil { private ConfigUtil() { } private static Properties properties = null; public static Properties getInstense(){ if (properties == null){ -
springboot读取腾讯企业邮箱的时候怎么设置Properties
2020-12-01 22:50:371.请看代码,使用pop3去读取 ... Properties props = new Properties(); props.setProperty("mail.store.protocol", "pop3"); // 协议 props.setProperty("mail.pop3.port", "110"); // 端口 // props.setProperty(. -
Maven properties覆盖
2020-03-13 17:17:14在一次使用maven properties 的过程中遇到属性覆盖的坑。依赖的版本被不小心定义的properties修改了。 问题描述 当时情况是这样的,引入公司定义的es starter,这个starter的部分依赖如下(主要关注版本号是:7.5.0... -
mybatis properties属性
2017-09-19 21:55:55mybatis properties属性properties属性 可以为系统配置一些运行参数,这些配置可以在xml中完成,也可以在properties文件中编写。在Mybatis中提供了三种方式让我们使用properties 1. property 子元素 2. properties...
-
MySQL 事务和锁
-
朱老师c++课程第3部分-3.5STL的其他容器讲解
-
2021 PHP租车系统 毕业设计 毕设源码 源代码使用教程
-
杭州电子科技大学《数据结构》期末考试试卷(含答案).pdf
-
C语言可变参数列表的学习
-
自动化测试Python3+Selenium3+Unittest
-
MySQL Router 实现高可用、负载均衡、读写分离
-
疯狂Python讲义习题答案
-
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
Java基础
-
大学生十套《数据结构》复习试题及答案.pdf
-
基于FPGA的DES加解密实现
-
rdma示例程序.zip
-
力扣刷题笔记:「LeetCode」61 - 70题详解
-
《逻辑导论》二、三、四、六章答案.pdf
-
福州大学《数字电子技术基础》期末试卷.pdf
-
基于电商业务的全链路数据中台落地方案(全渠道、全环节、全流程)
-
华电《电分》期末考试试卷.pdf
-
【硬核】一线Python程序员实战经验分享(1)