黑马程序员技术交流社区

标题: Properties简介及联系 [打印本页]

作者: MUFCRyanCR7    时间: 2015-9-1 20:32
标题: Properties简介及联系
/*
Properties是hashtable的子类,具备Map集合的特点,其内部存储的是键值对,
        它是集合中和IO技术相结合的容器。
特点:可用于键值对形式的配置文件,且格式固定:键=值。
*/

package file;

import java.io.*;
import java.util.*;
class IOProperties
{
        public static void main(String[] args) throws IOException
        {
                //loadMethod();
                loadDemo();
        }
       
        //load方法演示
        public static void loadDemo() throws IOException
        {
                Properties prop = new Properties();
                FileInputStream fis = new FileInputStream("D:\\java_work\\BasicFiles\\settingsinfo.txt");

                //将流中的数据加载进集合
                prop.load(fis);

                prop.setProperty("player","Memphis");        //只能在内存中改变值,文件中不变化
                prop.setProperty("number","7");

                //改变文件中的值,将上一步内存中改变的值同步到文本中并修改。
                FileOutputStream fos = new FileOutputStream("D:\\java_work\\BasicFiles\\settingsinfo.txt");
                prop.store(fos,"Ryan");                //"Ryan"是注释内容,以#开头,Properties不执行,此外会默认注释时间。
                prop.list(System.out);

                fos.close();
                fis.close();
        }

        /*load方法原理演示:将流中的数据存储到集合中
        需求:将settingsinfo.txt中的键值对数据存到集合中进行操作。
        步骤:1.用一个流和settingsinfo.txt文件进行关联。
                  2.读取一行数据,将该行数据用"="进行切割。
                  3.等号左边为键,右边为值,存入到Properties集合中即可。
        */
        public static void loadMethod() throws IOException
        {
                BufferedReader bufr = new BufferedReader(new FileReader("D:\\java_work\\BasicFiles\\settingsinfo.txt"));
                Properties prop = new Properties();
                String line = null;
                while ((line=bufr.readLine())!=null)
                {
                        String[] arr = line.split("=");
                        prop.setProperty(arr[0],arr[1]);
                }
                bufr.close();
                sop(prop);
        }

        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}

作者: Wqi    时间: 2015-9-1 21:01
还要一周才会学到......




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