http://blog.csdn.net/wjw_java/article/details/7950765
- 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));
- }
- }
- }
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));
}
}
}