Map

  |--Hashtable

    |--Properties

Properties集合特点:

 1.该集合中的键和值都是字符串类型

 2.集合中的数据可以保存在IO流中或者从IO流中获取数据。

通常该集合用于操作以键值对存在的配置文件。

Properties有个list方法,用于调试过程中,输出properties中的数据

Pro.list(system.out)将properties中的数据在控制台显示。

两个最常用的方法,与io流相结合

store

load

 /*
  * 定义功能,获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示。并不要在运行程序。
  *
  * 思路:
  * 1,应该有计数器。
  * 每次程序启动都需要计数一次,并且是在原有的次数上进行计数。
  * 2,计数器就是一个变量。 突然冒出一想法,程序启动时候进行计数,计数器必须存在于内存并进行运算。
  * 可是程序一结束,计数器消失了。那么再次启动该程序,计数器又重新被初始化了。
  * 而我们需要多次启动同一个应用程序,使用的是同一个计数器。
  * 这就需要计数器的生命周期变长,从内存存储到硬盘文件中。
  *
  * 3,如何使用这个计数器呢?
  *     首先,程序启动时,应该先读取这个用于记录计数器信息的配置文件。
  *  获取上一次计数器次数。 并进行试用次数的判断。
  *  其次,对该次数进行自增,并自增后的次数重新存储到配置文件中。
  *
  *
  * 4,文件中的信息该如何进行存储并体现。
  *     直接存储次数值可以,但是不明确该数据的含义。 所以起名字就变得很重要。
  *     这就有了名字和值的对应,所以可以使用键值对。
  *     可是映射关系map集合搞定,又需要读取硬盘上的数据,所以map+io = Properties.
  *
  *
  *
  */

 public class PropertiesTest {

     /**
      * @param args
      * @throws IOException
      * @throws Exception
      */
     public static void main(String[] args) throws IOException  {

         getAppCount();

     }

     public static void getAppCount() throws IOException{

         //将配置文件封装成File对象。
         File confile = new File("count.properties");

         if(!confile.exists()){
             confile.createNewFile();
         }

         FileInputStream fis = new FileInputStream(confile);

         Properties prop = new Properties();

         prop.load(fis);

         //从集合中通过键获取次数。
         String value = prop.getProperty("time");
         //定义计数器。记录获取到的次数。
         int count =0;
         if(value!=null){
             count = Integer.parseInt(value);
             if(count>=5){
 //                System.out.println("使用次数已到,请注册,给钱!");
 //                return;
                 throw new RuntimeException("使用次数已到,请注册,给钱!");
             }
         }
         count++;

         //将改变后的次数重新存储到集合中。
         prop.setProperty("time", count+"");

         FileOutputStream fos = new FileOutputStream(confile);

         prop.store(fos, "");

         fos.close();
         fis.close();

     }

 }

Properties集合的更多相关文章

  1. 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

    ---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...

  2. Properties集合的练习

    1.更改文件中的数据,特定键的值: 需求:我有一个文本文件(user.txt),我知道数据是键值对形式的,但是不知道内容是什么. 请写一个程序判断是否有"lisi"这样的键存在,如 ...

  3. java基础知识回顾之java集合类-Properties集合

    /** java.lang.Object   |--java.util.Dictionary<K,V>      |--java.util.Hashtable<Object,Obje ...

  4. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器

    集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                  ...

  5. IO流--与properties集合配合使用

    IO流--与properties集合配合使用: 注:生产上主要用于常量文件的配置,读取常量文件: 1:properties集合的放值与取值: /* * properties集合继承自hashTable ...

  6. Properties集合_修改配置信息

    集合中的数据来自于一个文件  注意:必须要保证该文件中的数据是键值对.  需要使用到读取流 使用load()方法读取已有文件中的数据,存储到Properties集合中 public class Pro ...

  7. Properties集合_list方法与store方法

    Properties集合和流对象结合的功能 list()方法: import java.util.Properties; public class PropertiesDemo { public st ...

  8. Properties集合概述与存和取

    Properties集合:(Map集合下的Hashtable集合下的一个子类) 特点: 1.集合中的键和值都是字符串 2.集合中的数据可以保存到流中,或者从流中获取 该集合通常用于操作以键值对形式存在 ...

  9. Java中Properties集合总结

    一:定义 表示一个持久的集,可以存在流中或者从流中加载.用来读取Java的配置文件,在Java中为.properties为后缀名的文本文件. 二:特点 是 Hashtable子类,map集合方法都可以 ...

随机推荐

  1. Java 集合 fail-fast机制 [ 转载 ]

    Java 集合 fail-fast机制 [转载] @author chenssy 摘要:fail-fast产生原因.解决办法 在JDK的Collection中我们时常会看到类似于这样的话: 例如,Ar ...

  2. MongoDB数据模型(二)

    原文地址 接上一篇 四.模型树结构 父引用的模型树结构 这个数据模型描述了一个树形结构,在子节点中存储父节点的引用. 模式 父引用模式存储每个树节点到文档中,除了树节点外,文档还存储了父节点的id. ...

  3. HDU 1407 测试你是否和LTC水平一样高(枚举)

    测试你是否和LTC水平一样高 Problem Description 大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上!你的任务是:计算方程x^2+y^2+z ...

  4. iostransitiontranslate闪屏问题总结

    webkit在绘制页面时会将结构分为各种层,当层足够大时就会变成很大的平铺层.这样一来webkit在每次页面结构发生变化时不需要都渲染整个页面而是渲染对应层了,这对渲染速度来说相当的重要.webkit ...

  5. 使 httpClient 支持中文

    一个有效的方法:重载 PostMethod 的 getRequestCharSet 方法 1: class PostChinese { 2: HttpClient httpClient = new H ...

  6. java 类型转换(摘自网络)

    java基本类型转换规则   1.基本数据类型的转换是指由系统根据转换规则自动完成,不需要程序员明确地声明不同数据类型之间的转换.     转换在编译器执行,而不是等到运行期再执行. 2.基本数据类型 ...

  7. 【APP测试初体验】android测试命令----压力测试

    **以前一直做web测试,新一份工作新的开始,决定尝试新的测试,于是选择了一个从未接触的 APP测试. 怎么说呢,对于做web测试的人来说,app真的没有一点难度...测试流程一样,测试方法也差不多, ...

  8. javascript焦点图自动缓冲滚动

    html中调用的js库,之前的随笔中有写,就不细说了,不明白的可以留言给我 <!DOCTYPE html> <html> <head> <meta chars ...

  9. 第2章 熟悉Eclipse开发工具----加减乘除,和差积商的英文写法

    加减乘除表示运算:plus  minus multiply divide和差积商表示运算结果:sum difference product quotient

  10. HttpClient的get和post方式提交数据的使用

    /** * Http工具类 */ public class HttpUtil { // 创建HttpClient对象 public static HttpClient httpClient = new ...