1、更改文件中的数据,特定键的值:

需求:我有一个文本文件(user.txt),我知道数据是键值对形式的,但是不知道内容是什么。
   请写一个程序判断是否有“lisi”这样的键存在,如果有就改变其值为”100”
分析:
  A:把文本文件中的数据加载到Properties集合中
  B:获取该集合的键集合
  C:遍历键集合,进行判断是否是lisi键
          是:更改为“100”
          不是:不理
  D:把更改后的集合数据存储到文本中

  1. public class PropertiesTest1 {
  2.  
  3. public static void main(String[] args) throws IOException {
  4.  
  5. //创建集合
  6. Properties prop = new Properties();
  7. Reader r = new FileReader("user.txt");
  8. //public void load(Reader reader):把文件中的数据读取到集合中
  9. prop.load(r);
  10. r.close();
  11.  
  12. //遍历集合,获取键集合
  13. //public Set<String> stringPropertyNames()返回此属性列表中的键集,
  14. //其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键
  15. Set<String> s = prop.stringPropertyNames();
  16. for(String key : s){
  17. if(prop.get(key).equals("lisi")){
  18. prop.setProperty(key, "100");
  19. }
  20. }
  21.  
  22. //把集合中的数据存储到文本中
  23. Writer w = new FileWriter("user.txt");
  24. prop.store(w,"更改后");
  25. w.close();
  26.  
  27. }
  28.  
  29. }

2、一些游戏,都有试玩次数或者关卡,当玩到特定的次数或者关卡时,就要求付费。。。来试试如何实现:

下面是次数版本,关卡差不多。

需求:

    我有一个猜数字小游戏的程序,请写一个程序实现在测试类中只能用5次,超过5次提示:游戏试玩已结束,请付费。
分析:
    A:创建一个文本文件,里面写一段键值对数据:count=0(不需要程序创建)
    B:创建properties集合,把文本中的数据加载到集合中
    C:获取count键的值
    D:判断次数
        超过5次:提示
        不超过:count键的值+1,并把这段数据重新存储到文本文件中,继续游戏

  1. public class PropertiesTest2 {
  2.  
  3. public static void main(String[] args) throws IOException {
  4.  
  5. //创建集合
  6. Properties prop = new Properties();
  7. //把文本的数据加载到集合中
  8. Reader r = new FileReader("count.txt");
  9. prop.load(r);
  10. r.close();
  11.  
  12. //获取count键的值
  13. String value = prop.getProperty("count");
  14. //把字符串的值转换成int,方便判断
  15. int number = Integer.parseInt(value);
  16.  
  17. //对number进行判断
  18. if(number > 5){
  19. System.out.println("试玩次数已到,请付费");
  20. System.exit(0);
  21. }
  22. else{
  23. number ++;
  24. //重新把数据存储到文本中
  25.  
  26. //number必须转成字符串
  27. prop.setProperty("count", String.valueOf(number));
  28. Writer w = new FileWriter("count.txt");
  29. //存储
  30. prop.store(w, null);
  31. w.close();
  32. //继续
  33. GuessGame.start();
  34. }
  35.  
  36. }
  37.  
  38. }

。。。产生随机数并猜测判断的类,不写了

Properties集合的练习的更多相关文章

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

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

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

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

  3. Properties集合

    Map |--Hashtable |--Properties Properties集合特点: 1.该集合中的键和值都是字符串类型 2.集合中的数据可以保存在IO流中或者从IO流中获取数据. 通常该集合 ...

  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. WPF下递归生成树形数据绑定到TreeView上

    最终效果图:(用于学习类的效果 图片丑了点,看官莫怪) 新建窗体 然后在前端适当位置插入如下代码: <TreeView x:Name="> <TreeView.ItemTe ...

  2. SharePoint 2013 设置自定义布局页

    在SharePoint中,我们经常需要自定义登陆页面.错误页面.拒绝访问等:不知道大家如何操作,以前自己经常在原来页面改或者跳转,其实SharePoint为我们提供了PowerShell命令,来修改这 ...

  3. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q54-Q56)

    Question 54You create custom code to import content to SharePoint sites.You create a custom site def ...

  4. Python基础(5)--字典

    字典由多个键及与其对应的值构成的对组成(把键值对成为项),每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号括起来.空字典由两个大括号组成:{} 本文地址:http:/ ...

  5. Oracle递归查询

    一.创建数据 1.1.建立表与插入数据 CREATE TABLE DISTRICT ( ID ) NOT NULL, PARENT_ID ), NAME BYTE) NOT NULL ); ALTER ...

  6. 【原】log4cplus使用说明

    网上关于开源日志工具log4cplus的说明有很多,但大多略显复杂,本文主要从实用的角度,介绍一种最简单而且又实用的方法.本文的方法已经足够满足实际工程中的使用需求,而且不需要很复杂的流程,可以实现. ...

  7. Swift面向对象基础(上)——Swift中的类和结构体(上)

    学习来自<极客学院> import Foundation //1.定义类和结构体 /* [修饰符]calss 类名{ 零到多个构造器 零到多个属性 零到多个方法 零到多个下标 } 修饰符可 ...

  8. Effective Java 60 Favor the use of standard exceptions

    Benefits to reuse preexisting exceptions It makes your API easier to learn and use. Programs using y ...

  9. for循环练习题

    ■■■■■■■■■■■■■■■■■■■■■■■■■ 代码: <script> for(i=0;i<5;i++) { for(j=0;j<5;j++) { document.wr ...

  10. 深入PHP内核之ZVAL

    一.PHP的变量类型 PHP的变量类型有8种: 标准类型:布尔boolen,整型integer,浮点float,字符string 复杂类型:数组array,对象object 特殊类型:资源resour ...