集合(Properties)
介绍这个集合的原因就是这个集合可以和流结合使用。 这个集合的具体说明就不在本文详细说明了,具体的在之前的集合文中再补充吧。简单说明一下和其用法。
这个集合首先是Map下的子类,所以也是双列集合。但是不支持泛型。用代码来看看具体使用。简单演示。
代码语言:javascript复制package io_demo;
import java.util.Properties;
import java.util.Set;
public class IoDemo_25 {
public static void main(String[] args) {
//创建集合对象
Properties pro = new Properties();
//存储元素
pro.put(001,"jgdabc");
pro.put(002,"兰舟千帆");
pro.put(002,"lym");
//遍历集合
Set<Object> KeySet = pro.keySet();
for(Object key:KeySet)
{
Object value = pro.get(key);
System.out.print(key "," value);
}
pro.setProperty("000","jgdabc");
pro.getProperty("000");
//获取键值
Set<String> names = pro.stringPropertyNames();//获取到键集合
//于是可以这样遍历
for(String key:names)
{
String value = pro.getProperty(key);
System.out.println(key value);
}
}
}
==它的put()方法键是Object类型的,setProperty()方法的键必须是String类型。==这个需要注意。
集合到文件,文件到集合
代码语言:javascript复制package io_demo;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class IoDemo_26 {
public static void main(String[] args) throws IOException {
//把集合中的数据保存到文件
myStore();
//文件数据加载到集合
myLoad();
}
private static void myLoad() throws IOException {
Properties prop = new Properties();
FileReader fr = new FileReader("E:\java_doc\src\io_demo\jgdabc.txt");
prop.load(fr);
fr.close();
System.out.print(prop);
}
private static void myStore() throws IOException {
Properties prop = new Properties();
prop.setProperty("000","jack");
prop.setProperty("001","jgdabc");
prop.setProperty("002","john");
FileWriter fw = new FileWriter("E:\java_doc\src\io_demo\jgdabc.txt");
prop.store(fw,null);//null代表不描述信息
}
}
做一个猜数字游戏
文件中给一个count=0,然后用这个集合读取到数据(需要转换为int类型,然后根据值得限制,限制玩的次数。当然没每次运行完毕都会count 1,运行三次就不能玩了。这个和一直在交互是不一样的。) 首先一个猜数字游戏类
代码语言:javascript复制package java_practice;
import java.util.Scanner;
public class GuessNumber {
public static void start()
{
Scanner input = new Scanner(System.in);
int number = (int) (Math.random() * 100) 1; // 产生随机数
int guess;// 用户猜的数字
int count = 0;// 猜测次数
System.out.println("我心里有一个0到100之间的整数,你猜是什么?");
// 用户猜测随机数
do {
guess = input.nextInt();
if (number < guess) {
System.out.println("大了点,再猜!");
count ;
} else if (number > guess) {
System.out.println("小了点,再猜!");
count ;
} else {
count ;
break;
}
} while (true);
System.out.println("这个数字是" number);
System.out.println("您猜的次数是" count);
// 根据猜测次数给出评价
if (count == 1) {
System.out.println("你太聪明了!");
} else if (count >= 2 && count <= 5) {
System.out.println("不错,再接再厉!");
} else {
System.out.println("要努力啊!");
}
}
}
然后一个测试主类
代码语言:javascript复制package io_demo;
import java_practice.GuessNumber;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.SQLOutput;
import java.util.Properties;
public class IoDemo_27 {
public static void main(String args[]) throws IOException {
GuessNumber guessNumber = new GuessNumber();
Properties prop = new Properties();
FileReader fr = new FileReader("E:\java_doc\src\io_demo\count.txt");
prop.load(fr);
fr.close();
String count = prop.getProperty("count");
int number = Integer.parseInt(count);
if(number>=3)
{
System.out.println("游戏试玩结束,想玩请充值");
}else
{
guessNumber.start();
prop.setProperty("count",String.valueOf(number));
number ;
FileWriter fw = new FileWriter("E:\java_doc\src\io_demo\count.txt");
prop.store(fw,null);
fw.close();
}
}
}
注意一定要自己建立一个文件,里面存一个标记值。这样功能就可以实现了。