黑马程序员技术交流社区

标题: Properties类中load()原理? [打印本页]

作者: 小罴孩    时间: 2013-8-30 01:49
标题: Properties类中load()原理?
为什么:FileOutputStream output = new FileOutputStream("src/dcj/io/test.txt"); 这一句必须放在load()方法之后?求解释+原理?

import java.io.*;
import java.util.*;
/**
* 在test.txt文件中存入下面四组值以便操作
*     4=yui
        3=gfl
        2=jy
        1=qwer
* Properties是hashtable的字类
* 也就是说他具备Map集合的特点,但是键值都必须是字符串
* 是集合与IO技术相结合的集合容器
*
* 该对象的特点:用于键值对形式的配置文件
*
*/

public class PropertiesDemo {
        public static void main(String[] args) throws IOException {
               
                Properties prop = new Properties();
               
                //定义在这里是不行的,会只保存修改的数据,其它数据都被删除了。
                //FileOutputStream output = new FileOutputStream("src/dcj/io/test.txt");
               
                //目标文件
                FileInputStream input = new FileInputStream("src/dcj/io/test.txt");               

                prop.load(input);
               
                //******修改后写入文件,输出流为啥必须定义在load()后面?
                FileOutputStream output = new FileOutputStream("src/dcj/io/test.txt");

                prop.setProperty("4", "jack");

                prop.list(System.out);
               
                prop.store(output,"-- listing properties --");
               
                output.close();
                input.close();
        }

//需求:模拟load(InputStrean in);方法,将test.txt中数据存入到集合中进行操作
        /*
         * 1,用一个流关联该文件
         * 2,读取一行数据,将该数据用等号进行切割
         * 3,等号左边为键,右边为值存入Properties中即可
         */
        public static void method_1() throws IOException{
                //获取目标文件
                BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt"));
                //将对象以键值形式存入在Properties对象中
                Properties prop = new Properties();
               
                String str = null;
                String[] s;
                //读取一行
                while((str=br.readLine()) != null){
                        s = str.split("=");
                        if(s.length == 2){
                                //存入Properties对象
                                prop.setProperty(s[0], s[1]);
                        }
                }
                br.close();
                System.out.println(prop);
        }
}



作者: Nero    时间: 2013-8-30 09:21
能不能再加个true 参数
作者: 杨增坤    时间: 2013-9-5 20:34
楼主 你的问题如果解决了!



请把您的问题的"未解决"更改为"已解决"!



谢谢合作!







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2