Properties集合的练习
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集合的练习的更多相关文章
- 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类
---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...
- java基础知识回顾之java集合类-Properties集合
/** java.lang.Object |--java.util.Dictionary<K,V> |--java.util.Hashtable<Object,Obje ...
- Properties集合
Map |--Hashtable |--Properties Properties集合特点: 1.该集合中的键和值都是字符串类型 2.集合中的数据可以保存在IO流中或者从IO流中获取数据. 通常该集合 ...
- -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器
集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别? A:长度区别 ...
- IO流--与properties集合配合使用
IO流--与properties集合配合使用: 注:生产上主要用于常量文件的配置,读取常量文件: 1:properties集合的放值与取值: /* * properties集合继承自hashTable ...
- Properties集合_修改配置信息
集合中的数据来自于一个文件 注意:必须要保证该文件中的数据是键值对. 需要使用到读取流 使用load()方法读取已有文件中的数据,存储到Properties集合中 public class Pro ...
- Properties集合_list方法与store方法
Properties集合和流对象结合的功能 list()方法: import java.util.Properties; public class PropertiesDemo { public st ...
- Properties集合概述与存和取
Properties集合:(Map集合下的Hashtable集合下的一个子类) 特点: 1.集合中的键和值都是字符串 2.集合中的数据可以保存到流中,或者从流中获取 该集合通常用于操作以键值对形式存在 ...
- Java中Properties集合总结
一:定义 表示一个持久的集,可以存在流中或者从流中加载.用来读取Java的配置文件,在Java中为.properties为后缀名的文本文件. 二:特点 是 Hashtable子类,map集合方法都可以 ...
随机推荐
- [Xamarin.Android] Support Library Tips
[Xamarin.Android] Support Library Tips Support Library支持内容 Xamarin Support Library每个版本支持.那些组件,可以参考这份 ...
- 来自亚马逊CEO Jeff Bezos的20句经验之谈
英文原文:The 20 Smartest Things Jeff Bezos Has Ever Said 当外界对一个公司的热情有些偏离常态时, 就会出现武断的言论,亚马逊对此就深有感受.2000 年 ...
- mvc项目架构分享系列之架构搭建之Infrastructure
项目架构搭建之Infrastructure的搭建 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...
- 桥牌笔记 Skill Level 4 C7 小心将吃
南主打5H. 看来问题不大,但要小心南的方块AK会阻塞桥路. 如果方块3-2分布,并且将牌也3-2分布,就很容易. 如果红桃4-1分布,那是死定了. 如果方块4-1分布,还有希望完成的! 为了防止东家 ...
- 关于const和define的内存分配问题的总结
关于const和define的内存分配问题 const与#define宏定义的区别----C语言深度剖析 1, const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量,存放在静 ...
- java多线程系列3-线程同步
如果一个资源被多个线程同时访问,可能会遭到破坏,这篇文章介绍java线程同步来解决这类问题 引入问题 某电影院目前正在上映贺岁大片,共有100张票,而它有3个售票窗口售票,请设计一个程序模拟该电影院售 ...
- 【读书笔记】iOS-读取文本文件
一,文本文件的内容. 二,工程目录 三,ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional ...
- CentOS6.5下RPM方式安装mysql5.6.33
1.mysql下载 下载地址:https://dev.mysql.com/downloads/mysql/5.6.html下载以下安装包: MySQL-client-5.6.33-1.el6.x86_ ...
- SAP SD业务的简图
- JavaScript Patterns 2.8 Number Conversions with parseInt()
Strings that start with 0 are treated as octal numbers (base 8) in ECMAScript 3; however, this has c ...