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

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

 public class PropertiesTest1 {

     public static void main(String[] args) throws IOException {

         //创建集合
Properties prop = new Properties();
Reader r = new FileReader("user.txt");
//public void load(Reader reader):把文件中的数据读取到集合中
prop.load(r);
r.close(); //遍历集合,获取键集合
//public Set<String> stringPropertyNames()返回此属性列表中的键集,
//其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键
Set<String> s = prop.stringPropertyNames();
for(String key : s){
if(prop.get(key).equals("lisi")){
prop.setProperty(key, "100");
}
} //把集合中的数据存储到文本中
Writer w = new FileWriter("user.txt");
prop.store(w,"更改后");
w.close(); } }

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

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

需求:

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

 public class PropertiesTest2 {

     public static void main(String[] args) throws IOException {

         //创建集合
Properties prop = new Properties();
//把文本的数据加载到集合中
Reader r = new FileReader("count.txt");
prop.load(r);
r.close(); //获取count键的值
String value = prop.getProperty("count");
//把字符串的值转换成int,方便判断
int number = Integer.parseInt(value); //对number进行判断
if(number > 5){
System.out.println("试玩次数已到,请付费");
System.exit(0);
}
else{
number ++;
//重新把数据存储到文本中 //number必须转成字符串
prop.setProperty("count", String.valueOf(number));
Writer w = new FileWriter("count.txt");
//存储
prop.store(w, null);
w.close();
//继续
GuessGame.start();
} } }

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

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. 为什么不推崇复杂的ORM

    上一篇文章写完,回复的人很多,有的说的很中肯,有的貌似只是看到文章的标题就进来写评论的!还有人问为什么我要屏蔽掉[反对]按钮,因为谁写文章都是为了分享,都在说出自己的心得体会.不过由于大家遇到的项目, ...

  2. Android5.0新特性——全新的动画(animation)

    全新的动画 在Material Design设计中,为用户与app交互反馈他们的动作行为和提供了视觉上的连贯性.Material主题为控件和Activity的过渡提供了一些默认的动画,在android ...

  3. Unable to execute dex: Multiple dex files define Lcom/kenai/jbosh/AbstractAttr

    出现该问题应该是导入项目的android版本问题.   编译的时候把build path 下 source选项卡中的libs去掉就正常了.   http://blog.csdn.net/e421083 ...

  4. sublime: useful commands

    CMD+R go to function in current file CMD+Option+Down find function definition in another file (from ...

  5. 安装并运行hadoop

    本文地址:http://www.cnblogs.com/archimedes/p/run-hadoop.html,转载请注明源地址. 欢迎关注我的个人博客:www.wuyudong.com, 更多云计 ...

  6. iOS多线程初见

    . 三种创建线程的方法 //第一种 NSThread * thread1 = [[NSThread alloc] initWithTarget:self selector:@selector(doAc ...

  7. Mac terminal从bash切换到zsh

    0.预备知识 echo $SHELL命令可以查看当前正在使用什么shell 默认情况下(mbp 10.10.5)使用bash作为默认shell,然而也自带zsh,which zsh命令可以查看zsh的 ...

  8. 又一个悬而未决的bug被解决

    之所以叫悬而未决,是因为从我第一次见到这个bug,到现在大概已经过了快两年的时间,期间好几次想解决这个问题,但是一直碍于环境和一些技术上的限制,没有解决,直到昨天在一系列的因素作用下,终于解决了这个问 ...

  9. centos性能监控系列三:监控工具atop详解

    引言 Linux以其稳定性,越来越多地被用作服务器的操作系统(当然,有人会较真地说一句:Linux只是操作系统内核:).但使用了Linux作为底层的操作系统,是否我们就能保证我们的服务做到7*24地稳 ...

  10. sql server 导出的datetime结果 CAST(0x00009E0E0095524F AS DateTime) 如何向mysql,oracle等数据库进行转换

    1. 处理 sql server 导出的 datetime 类型的字段 在进行sql server向mysql等其他数据进行迁移数据时,会发现使用sql server导出的datetime类型的结果是 ...