Properties
- 介绍
- 是一个Map体系的集合类
- Properties可以保存到流中或从流中加载
- 属性列表中的每个键及其对应的值都是一个字符串
- 特有方法
- Object setProperty(String key, String value)设置集合的键和值,都是String类型,底层调用 Hashtable方法 put
- String getProperty(String key)使用此属性列表中指定的键搜索属性
- Set stringPropertyNames()从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串
- Properties和IO流相结合的方法
- void load(InputStream inStream)从输入字节流读取属性列表(键和元素对)
- void load(Reader reader)从输入字符流读取属性列表(键和元素对)
- void store(OutputStream out, String comments)将此属性列表(键和元素对)写入此 Properties表中,以适合于使用 load(InputStream)方法的格式写入输出字节流
- void store(Writer writer, String comments)将此属性列表(键和元素对)写入此 Properties表中,以适合使用 load(Reader)方法的格式写入输出字符流
读取&写入 Properties 示例:
public class PropertiesTest {
public static void main(String[] args) throws IOException {
//从文件中读取数据到Properties集合,用load()方法实现
Properties prop = new Properties();
FileReader fr = new FileReader("myOtherStream\\game.txt");
prop.load(fr);
fr.close();
//通过Properties集合获取到玩游戏的次数
String count = prop.getProperty("count");
int number = Integer.parseInt(count);
//判断次数是否到到3次了
if(number >= 3) {
//如果到了,给出提示:游戏试玩已结束,想玩请充值(www.itcast.cn)
System.out.println("游戏试玩已结束,想玩请充值(www.itcast.cn)");
} else {
//玩游戏
GuessNumber.start();
//次数+1,重新写回文件,用Properties的store()方法实现
number++;
prop.setProperty("count",String.valueOf(number));
FileWriter fw = new FileWriter("myOtherStream\\game.txt");
prop.store(fw,null);
fw.close();
}
}
}