Properties

何为Properties

Properties:
是一个Map体系的集合类
Properties可以保存到流中或从流中加载
不能使用泛型

Properties作为集合的特有方法:

Object setProperty(string key,string value):设置集合的键和值,都是string类型,底层调用Hashtable方法put
String getProperty(String key):使用此属性列表中指定的键搜索属性
Set<String> stringPropertyNames():从该属性列表中返回一个不可修改的键集合,其中键及其对应的值是字符串

Properties和io流结合的方法

void load(inputstream in):从输入字节流读取属性列表
void load(Reader reader):从输入字符流读取属性列表
void store(OutputStream out,String comments):将此属性列表写入Properties表中,适合以字节流输出
void store(Writer writer,String comments):将此属性列表写入Properties表中,适合以字符流输出

猜数小游戏
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package 流.Properties猜数字小游戏;

import java.util.Random;
import java.util.Scanner;

public class GuessNumber {
private GuessNumber() {

}
public static void start() {
Random r=new Random();
int number=r.nextInt(100)+1;
while(true) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要猜的数:");
int guessNumber=sc.nextInt();
//比较输入的数字
if(guessNumber>number) {
System.out.println("你猜的数字太大了");
break;
}else if(guessNumber<number) {
System.out.println("你猜的数字太小了");
break;
}else {
System.out.println("恭喜你猜中了");
break;
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package 流.Properties猜数字小游戏;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class PropertiesTest {

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

Properties prop = new Properties();
FileReader fr = new FileReader("d:\\count.txt");
prop.load(fr);
fr.close();
//通过Properties集合获取到玩游戏的次数
String count = prop.getProperty("count");
int number = Integer.parseInt(count);
//判断
if (number >= 3) {
System.out.println("游戏试玩结束");
} else {
GuessNumber.start();
number++;
System.out.println(number);
prop.setProperty("count",String.valueOf(number));

FileWriter fw = new FileWriter("d:\\count.txt");
prop.store(fw, null);
fw.close();
}
}

}
1
2
#Fri Apr 16 22:50:57 CST 2021
count=3
1
游戏试玩结束