您的位置:首页 > 职场人生

黑马程序员——Properties读取load(),操作,存储store()配置文件简介

2012-09-06 14:35 393 查看
                                          ----------------------    android培训    java培训  
期待与您交流!    ----------------------   
                   

package com.io;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;

/**
* Properties是hashtable的子类,也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串
* Properties是集合和IO相结合的集合容器
* 该对象的特点可以用于键值对形式的配置开发
* 那么在加载数据时,需要数据有固定格式,键=值
*
* p.load(new FileReader("路径"));//加载配置文件
* p.stote(new FileWriter("路径"),"");//把修改的信息存储在配置文件中
*
*
* @author wjw
*/
public class Properties_class {
public static void main(String[] args) {
//		setGetProperties();
//duQu();
load_store();
//		load_store1();
}
/*
* Properties类中的load()方法,读取文件到Properties对象中
* Properties类中的store()方法,将Properties对象中数据存储到文件中
*
* 提醒load,store分别都有字符流,字节流的方法的重载.
*/
public static void load_store(){
Properties p=new Properties();
FileReader fr=null;
FileWriter fw=null;

try {
fr=new FileReader("g:/java/text.txt");
p.load(fr);//load()方法可通过字符流直接加载文件
p.setProperty("b","8888888888");
fw=new FileWriter("g:/java/text.txt");
p.store(fw,"jack");//将Properties中的信息存储到文件中
System.out.println(p);
p.list(System.out);//将信息打印到控制台
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fr!=null){
fr.close();
}
} catch (Exception e2) {
}
try {
if(fw!=null){
fw.close();
}
} catch (Exception e2) {
}
}
}
public static void load_store1(){
Properties p=new Properties();
FileInputStream fis=null;
FileOutputStream fos=null;

try {
fis=new FileInputStream("g:/java/text.txt");
p.load(fis);//load()方法可通过字符流直接加载文件

//p.remove("lisi");
p.setProperty("a","11111");
fos=new FileOutputStream("g:/java/text.txt");
p.store(fos,"jack");//将Properties中的信息存储到文件中

System.out.println(p);
p.list(System.out);//将信息打印到控制台
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null){
fis.close();
}
} catch (Exception e2) {
}
try {
if(fos!=null){
fos.close();
}
} catch (Exception e2) {
}
}
}

/*
* 遍历Properties类中的键值对
*/
public static void bianLi(Properties p){
Set<String>set=p.stringPropertyNames();
for(String str:set){
System.out.println("键:"+str+"----值:"+p.getProperty(str));
}
}
/*
* 读取配置文件中的数据放到Properties集合中,这其实是Properties类中load()方法的原理
*/
public static void duQu(){
BufferedReader br=null;
Properties p=new Properties();
try {
br=new BufferedReader(new FileReader("g:/java/text.txt"));
String str="";
String[] split=new String[2];
while(null!=(str=br.readLine())){
split=str.split("=");//解析数据
p.setProperty(split[0],split[1]);//将数据存储到Properties中
}
bianLi(p);//调用遍历Properties类的方法
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(null!=br){
br.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}

/*
* Properties类中的getProtertity(),setProtertity()方法
*/
public static void setGetProperties(){
Properties p=new Properties();
p.setProperty("zhangsan", "33");//设定Properties类中存放的键值对
p.setProperty("lisi", "22");
p.setProperty("wangwu", "3563");
p.setProperty("zhaoliu", "3663");

p.setProperty("lisi","9999");//修改lisi的值,原来的值会被覆盖掉
System.out.println(p);//直接打印集合可获取集合信息

String zhi=p.getProperty("lisi");//根据键获取值
System.out.println(zhi);
//用原始方法遍历Properties集合
Set<Object> set=p.keySet();
Iterator<Object> iter=set.iterator();
while(iter.hasNext()){
String str=(String)iter.next();
System.out.println(str+":"+p.getProperty(str));
}
System.out.println("---------------------------------------------");
//用Properties类中定义的方法遍历集合:
Set<String>set_str=p.stringPropertyNames();
for(String str_a:set_str){
System.out.println(str_a+":"+p.getProperty(str_a));
}
}
}

                                          ----------------------    android培训    java培训  
期待与您交流!    ----------------------   
                         详细请查看      http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息