Propert常见方法:
package day22_IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Properties;
/*
* 这里的集合必须是Properties集合:
* public void load(Reader reader):把文件中的数据读取到集合中
* public void store(Writer writer,String comments):把集合中的数据存储到文件
*
* 特殊功能:
* public Object setProperty(String key,String value):添加元素
* public String getProperty(String key):获取元素
* public Set<String> stringPropertyNames():获取所有的键集合
*
* */
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
myLoad();
myStore();
}
private static void myStore() throws IOException {
// TODO Auto-generated method stub
//创建集合对象
Properties prop = new Properties();
prop.setProperty("林青霞", "27");
prop.setProperty("武松", "22");
//public void store(Writer writer,String comments):把集合中的数据存储到文件
Writer w = new FileWriter("name.txt");
prop.store(w, "helloworld");
w.close();
}
private static void myLoad() throws IOException {
// TODO Auto-generated method stub
//创建对象
Properties prop = new Properties();
//public void load(Reader reader):把文件中的数据读取到集合中
//注意:这个文件必须是键值对形式
Reader r = new FileReader("prop.txt");
prop.load(r);
r.close();
System.out.println("prop:"+prop);
}
}
Properties使用实例:
package day22_IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set;
/*
* 需求:我有一个文本文件(user.txt),我知道数据是键值对形式存储的,但是不知道内容是什么?
* 请编写一个程序判断是否有"李四"这样的键存在,如果有就将其值改变其为"100"
*
* 分析:
* A:把文件中的数据加载到集合中
* B:遍历集合,获取得到没一个键
* C:判断该键是否为目标值,如果是就将其修改
* D:把集合的数据重新存储到文件中
* */
public class PropertiseTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//把文件中的数据加载到集合中
Properties prop = new Properties();
Reader r = new FileReader("name.txt");
prop.load(r);//加载
r.close();
//遍历集合,获取得到每一个键
Set<String> set = prop.stringPropertyNames();
for(String key:set){
if(key.equals("李四")){
prop.setProperty(key, "100");
break;
}
}
//重新存储文件
Writer w = new FileWriter("name.txt");
prop.store(w, null);
w.close();
}
}