A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小罴孩 中级黑马   /  2013-8-30 01:49  /  1284 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么: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);
        }
}


评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

3 个回复

倒序浏览
能不能再加个true 参数
回复 使用道具 举报
楼主 你的问题如果解决了!



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



谢谢合作!


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马