Properties(配置文件类): 主要用于生产配置文件与读取配置文件的信息。

Properties属于集合类,继承于Hashtable。

Properties要注意的细节:
    1. 如果配置文件的信息一旦使用了中文,那么在使用store方法生成配置文件的时候只能使用字符流解决,如果使用字节流生成配置文件的话,默认使用的是iso8859-1码表进行编码存储,这时候会出现乱码。
    2. 如果Properties中的内容发生了变化,一定要重新使用Properties生成配置文件,否则配置文件信息不会发生变化。

常用方法:

1、构造方法:

Properties() 创建一个无默认值的空属性列表。

Properties(Properties defaults) 创建一个带有指定默认值的空属性列表。

2、常用方法

void load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。

void load(Reader reader) 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。

void  store(OutputStream out, String comments) 以适合使用 load(InputStream)
方法加载到 Properties 表中的格式,将此 Properties
表中的属性列表(键和元素对)写入输出流。

void  store(Writer writer, String comments) 以适合使用 load(Reader)
方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。

Object setProperty(String key, String value) 调用
Hashtable 的方法 put

String getProperty(String key) 用指定的键在此属性列表中搜索属性。

实战:使用properties实现本软件只能 运行三次,超过了三次之后就提示购买正版并推出jvm。

代码示例如下

 import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties; public class DemoProperties { public static void main(String[] args) throws IOException {
File file = new File("E:\\nick.property");
if (!file.exists()) {
file.createNewFile();
}
Properties properties = new Properties();
properties.load(new FileReader(file));
int count = 0;
String value = properties.getProperty("登录次数");
if (value!=null ) {
count = Integer.parseInt(value);
}
count++;
if (count>=3) {
System.out.println("试用期已过,请购买正版。");
System.exit(0);
} properties.setProperty("登录次数", count+"");
properties.store(new FileWriter(file), "登录次数"+count);
} }

Properties路径配置

为了解决程序中经常发生改变数据的配置问题,可以采用Properties文件来处理。从而在不改变原有程序的基础上实现数据的改变。

常见路径:

  绝对路径:一个文件的完整路径信息。一般绝对路径是包含有盘符的。  绝对路径的缺陷: 因为绝对路径是有盘符开头的,有些系统是没有盘符的。
     
     相对路径: 相对路径是相对于当前程序的路径。当前路径就是执行java命令的时候,控制台所在的路径。
     
     类文件路径 :类文件路径就是使用了classpath的路径找对应的资源文件。

配置Properties文件路径采用类文件路径是比较好的选择。如果需要使用到类文件路径首先先要获取到一个Class对象,并通过class对象的

输入字符流 getResourceAsStream(路径字符串)来load Properties文件。

代码示例

 public class DBUtil {

     static Properties properties ;

     static{
try {
properties = new Properties();
//去加载配置文件 /
Class clazz = DBUtil.class;
InputStream inputStream = clazz.getResourceAsStream("/db.properties"); // "/"代表了Classpath的路径。 getResourceAsStream 该方法里面使用的路径就是使用了类文件路径。
properties.load(inputStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static void main(String[] args) {
System.out.println("当前路径:"+ new File(".").getAbsolutePath() );
System.out.println("用户名:"+ properties.getProperty("userName")+" 密码:"+properties.getProperty("password")); }

配置文件类 Properties的更多相关文章

  1. java基础50 配置文件类(Properties)

    1. 配置文件类Properties的概念 主要生产配置文件与读取配置文件的信息 2.Properties要注意的细节 1.如果配置文件一旦使用了中文,那么在使用store方法生产的配置文件额时候字符 ...

  2. Spring boot 梳理 - 全局配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到resources下。

    全局配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到resources下.

  3. Day 19:Properties配置文件类、打印流(printStream) 、 编码与解码

    Properties(配置文件类): 主要用于生产配置文件与读取配置文件的信息. Properties要注意的细节:  1. 如果配置文件的信息一旦使用了中文,那么在使用store方法生成配置文件的时 ...

  4. java通过配置文件(Properties类)连接Oracle数据库代码示例

    import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java. ...

  5. log4CXX第二篇---配置文件(properties文件)详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  6. springboot中配置文件application.properties的理解

    前言 Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来.所以,我们要想把Sprin ...

  7. springboot中配置文件application.properties的配置详情,数据源配置

    pring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下.Sping Boot的全局配置文件 ...

  8. Spring Boot 中配置文件application.properties使用

    一.配置文档配置项的调用(application.properties可放在resources,或者resources下的config文件夹里) package com.my.study.contro ...

  9. JAVA 读取配置文件 xxx.properties

    package config_demo; import java.io.InputStream; import java.util.Properties; public class UrlDemo { ...

随机推荐

  1. PHP7新增 功能

    php7发布已有半月,最近有时间了解一下php7的新特性,当然,这个版本最大的特点是性能的提升.在下并非高手,欢迎大家指出错误,同时期待共同交流 1.在use语句增加了group支持use FooLi ...

  2. Hibernate(十)__缓存机制

    为什么需要缓存? 缓存的作用主要用来提高性能,可以简单的理解成一个Map: 使 用缓存涉及到三个操作:把数据放入缓存.从缓存中获取数据. 删除缓存中的无效数据. 从上图看出: 当我们去查询对象的时候, ...

  3. S1的小成果:MyKTV系统

    转眼之间,已经到了2016年,即新的一年了!S1也结束了,收获的也不多 ,想想最后留给大家的就一个KTV项目了. 希望大家看时有所收获           现在我们一起来看KTV前台管理 主界面的运行 ...

  4. 一个强大的jquery分页插件

    点击这里查看效果 这个分页插件使用方便,引用keleyidivpager.js和keleyidivpager.css文件,然后在htm(或者php,aspx,jsp等)页面中对分页总数,参数名,前缀后 ...

  5. Android开发学习——开发调试工具-DDMS应用,ADB进程,Logcat

    DDMS --  Dalvik debug monitor service    调试监控服务 对模拟器进行相关配置. ADB进程   Android debug bridge  建立eclipse和 ...

  6. SVN(Cornerstone)-添加忽略文件

    1.打开CornerStone,找到偏号设置,找到Subversion选项 2.去看"Use default global ignores"前面的"勾",删除& ...

  7. Ruby的require相关知识

    1. 在调用require xxx之前,需要确定xxx这个gem已经安装过了(使用gem install xxx,安装位置可以使用gem env列出),或者xxx是Ruby内置的标准函数库(StdLi ...

  8. Linux命令学习总结: file命令

    命令简介: 该命令用来识别文件类型,也可用来辨别一些文件的编码格式.它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的. 执行权限 :All User 指令所在 ...

  9. 用python pickle库来存储数据对象

    pickling有一个更常用的叫法是serialization,它是指把python对象转化成字节流byte stream, unpickling就是把byte stream转换成对象.python的 ...

  10. 大数据系列(1)——Hadoop集群坏境搭建配置

    前言 关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方 ...