精华内容
下载资源
问答
  • Properties集合

    2019-04-28 20:35:49
    Properties集合 1、Properties 类表示了一个持久的属性集。 2、Properties 可保存在流中或从流中加载。 3、属性列表中每个键及其对应值都是一个字符串。 Properties集合的特点 1、Hashtable的子类,map的方法都能用 ...

    Map

    |–Hashtable

    |–Properties

    Properties集合
    1、Properties 类表示了一个持久的属性集。
    2、Properties 可保存在流中或从流中加载。
    3、属性列表中每个键及其对应值都是一个字符串。

    Properties集合的特点
    1、Hashtable的子类,map的方法都能用
    2、键值都是字符串,没有泛型
    3、很多方法与流有关
    4、键值可以存在集合中,可以持久到硬件(硬盘,u盘,光盘),数据的来源也可以是持久化的设备。

    Properties集合的方法
    void list(PrintWriter out) 将属性列表输出到指定的输出流。
    void load(Reader reader) 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
    void store(Writer writer, String comments) 以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。

    利用Properties查看系统属性集

    public static void fun2()throws IOException{
            Properties pro = System.getProperties();
    
            PrintWriter fw = new PrintWriter("lala.txt");
            pro.list(System.out);
    
            pro.setProperty("user.country","Chinese");
          
            pro.list(fw);
            fw.close();
        }
    
    

    读取文件中的键值对,并修改内容存入文件

    public static void fun3()throws IOException{
            Properties pro = new Properties();
            FileReader fr = new FileReader("config.properties");
    
            pro.load(fr);
    
            pro.setProperty("color","blue");
    
            FileWriter fw = new FileWriter("config.properties");
            pro.store(fw,"默认值");
           
        }
    
    展开全文
  • properties集合

    2019-06-21 20:53:46
    Properties属性集 它继承自hashtable类,所以也是键值对形式存储数据的双列集合,且键和值都是一个字符串,我们要注意哈,hashmap和hashtable也继承自map接口,但是hashmap是用来取代hashtable的,因为hashtabl线程不安全...

    Properties属性集

    它继承自hashtable类,所以也是键值对形式存储数据的双列集合,且键和值都是一个字符串,我们要注意哈,hashmap和hashtable也继承自map接口,但是hashmap是用来取代hashtable的,因为hashtabl线程不安全,键值对都不能为null之类的

    它是唯一一个和io流结合的集合

    • 我们可以使用propperties集合中的store()方法把集合中的临时数据持久化写入到硬盘存储.
    • 我们也可以使用properties集合中的load()方法把硬盘中保存的文件(内容必须是键值对的哈),读取到集合中使用
    • 对于store()方法的举例:
    /**
         * 将properties集合中存储的临时数据保存到硬盘中
         * public void store(OutputStream  out, String  comments)
         * public void store(Writer  writer, String  comments)
         *  参数:
         *      OutputStream  out:字节输出流,不能写入中文
         *      Writer  writer: 字符输出流,随便写啥都行
         *      String  comments: 注释,用于解释说明我保存的文件是干啥的
         *      注意这个注释不能使用中文,会产生乱码,因为它默认是unicode编码,一般使用空字符串
         *  使用步骤:
         *      1. 创建properties集合对象,添加数据
         *      2. 创建字节/字符输出流对象,构造方法中绑定要输出的目的地
         *      3. 使用properties集合中的store方法把集合中的临时数据持久化写入到硬盘中
         *      4. 关闭流
         */
        private static void show1() {
            //1. 创建properties集合对象,添加数据
            Properties prop = new Properties();
            prop.setProperty("fan1", "18");
            prop.setProperty("fan2", "19");
            prop.setProperty("fan3", "20");
            prop.setProperty("fan4", "21");
    
            //创建字节/字符输出流对象,构造方法中绑定要输出的目的地,我就放在项目中
            FileWriter fw = null;
            try {
                fw = new FileWriter("prop.txt");
                
                //3. 使用properties集合中的store方法把集合中的临时数据持久化写入到硬盘中
                prop.store(fw,"save_data");
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
    • **对于load()方法的举例: **
     /**
         * public void load(InputStream  inStream): 不能读取含有中文的键值对
         * public void load​(Reader reader):能读取含有中文的键值对
         * 注意:
         *  1. 键值对之间的连接符一般都是=
         *  2. 我们可以用#进行注释,#修饰的内容不会被读取
         *  3. 键值对都默认是字符串,不用加引号
         *
         */
        private static void show2() {
            //1.创建properties对象
            Properties prop = new Properties();
            //2.创建输入流对象
            FileReader fr = null;
            try {
                fr = new FileReader("prop.txt");
    
                //读取数据到集合对象中
                prop.load(fr);
    
                //遍历集合
                Set<String> names = prop.stringPropertyNames();
                for (String s : names) {
                    String value = prop.getProperty(s);
                    System.out.println(s + ": " + value);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                //关闭流
                try {
                    fr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    

    因为properties的键值对都是字符串类型的,所以它其中会有一些操作字符串的特殊的方法

    • public Object setProperty​(String key, String value), 调用Hashtable方法put存储数据到集合中.
    • public String getProperty(String key, String defaultValue, 通过键获取值,就相当于map集合中的get(key)方法.
    • public Set stringPropertyNames(), 从此属性列表返回一组不可修改的键,就相当于map集合中的keyset()方法.
    • **对于操作字符串方法的举例: **
    private static void show() {
        //创建properties集合对象
        Properties prop = new Properties();
        //向集合中添加数据
        prop.setProperty("fan1", "18");
        prop.setProperty("fan2", "19");
        prop.setProperty("fan3", "20");
        prop.setProperty("fan4", "21");
    
        //遍历集合
        Set<String> names = prop.stringPropertyNames();
        for (String s : names) {
            System.out.println(s + ": " + prop.getProperty(s));
        }
    }
    
    展开全文
  • Properties 集合

    2018-01-04 11:01:54
    Properties集合是一个双列集合, 键值都是String类型. 它表示了一个持久的属性集 用于io流,处理配置文件。 Properties prop = new Properties(); // 获取配置文件里面的数据 prop.load(new FileInputStream(...

    Properties 集合类

        Properties集合是一个双列集合, 键值都是String类型. 它表示了一个持久的属性集
        用于io流,处理配置文件。 
    
    Properties prop = new Properties();
            // 获取配置文件里面的数据
            prop.load(new FileInputStream("config.properties"));
    
            // 修改config.properties里面的数据
            prop.setProperty("name", "wangwu");
    
            // 保存数据
            prop.store(new FileOutputStream("config.properties"),"itheima");
    
            System.out.println(prop);
    
            // 遍历Properties对象
            //Enumeration en = prop.propertyNames();
            //while(en.hasMoreElements()) {
            //  String key = (String)en.nextElement();
            //  String value = prop.getProperty(key);
            //  System.out.println(key+"..."+value);
            //  }
            //System.out.println(prop);
        注意:此集合不能用于中文字符串,中文字符会出现乱码问题
    
    展开全文
  • Properties 集合

    2017-09-13 20:10:00
    Properties 特点: 该集合中的键和值都是字符串类型 集合中的数据可以保存到流中, 或者从流中获取 应用: 通常该集合用于操作以键值对形式存在的配置文件 常用方法: // 单个元素的存和取: // 存元素 set...
    1. Map
      • Hashtable
        • Properties
    2. 特点:
      1. 该集合中的键和值都是字符串类型
      2. 集合中的数据可以保存到流中, 或者从流中获取
    3. 应用:
      • 通常该集合用于操作以键值对形式存在的配置文件
    4. 常用方法:
    // 单个元素的存和取:
        // 存元素
            setProperty();
        // 取元素
            getProperty();
    
    // 获取所有元素 (将 Map 集合转换成 Set 集合)
        Set<String> stringPropertyNames();  // 返回此属性列表中的键集
    
    // 示例:
        public static void propertiesDemo(){
    
            // 创建一个 Properties 的集合
                Properties prop = new Properties();
    
            // 存储元素, 注意, 键和值都是字符串
                prop.setProperty("wangcai","22");
                prop.setProperty("lisi","32");
                prop.setProperty("zhangsan",35);
    
            // 修改元素, 键相同, 值覆盖
                prop.setProperty("lisi","14");
    
            // 获取所有元素
                Set<String> names = prop.stringPropertyNames();
    
                for(String name:names){
                    String value = prop.getProperty(name);
    
                    System.out.println(name+":"+value);
                }
        }

    Properties 集合和流对象相结合的方法

    // list(PrintStream out);
        public static void method(){
    
            Properties prop = new Properties();
    
            prop.setProperty("wangcai","18");
            prop.setProperty("xiaoqiang","28");
            prop.setProperty("zhaoliu","25");
    
            prop.list(System.out);  // 将集合信息打印到控制台
        }
    
    // 将 Properties 表中的属性列表写入到输出流:
    //        store(OutputStream out, String comments(属性列表的描述));
    //        store(Writer writer, String comments);
    
    public static void method_1(){
    
        Properties prop = new Properties();
    
        prop.setProperty("wangcai","18");
        prop.setProperty("xiaoqiang","28");
        prop.setProperty("zhaoliu","25");
    
        // 想要将这些集合中的字符串键值信息持久化存储到文件中
        // 需要关联输出流
        FileOutputStream fos = new FileOutputStream("info.txt");
    
        // 将集合中数据存储到文件中, 使用 store() 方法
        prop.store(fos,"name+age");
    
        fos.close(); // 关闭流
    }
    
    // 将硬盘上已有的文件信息读取到 Properties 集合中
    //      load(InputStream in);  字节流
    //       load(Reader reader);  字符流
    
        public static void method_2(){
    
            Properties prop = new Properties();
    
            // 集合中的数据来自与一个文件
            // 注意: 必须要保证该文件中的数据是键值对
            //  需要使用到读取流(字节流或字符流)
            FileInputStream fis = new FileInputStream("info.txt");
    
            // 使用 load() 方法
            prop.load();
    
            fis.close();
        }
    
        // 模拟实现 load() 方法
        public static void MyLoad(){
            Properties prop = new Properties();
    
            BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
    
            String line = null;
            while((line=bufr.readLine())!=null){
                // 将 info.txt 中的注释文件过滤出去
                if(line.startsWith("#"))
                    continue;
    
                // 使用 "=" 切割字符串
                String[] arr = line.split("=");
    
                // 存入 Properties 集合中
                prop.setProperty(arr[0],arr[1]);
            }
    
            bufr.close();
        }
    
    
    // 示例二: 对已有的配置文件中的信息进行修改
            /*
             * 思路:
             *     读取这个文件
             *     将这个文件中的键值数据存储到集合中
             *     通过集合对数据进行修改
             *     在通过流将修改后的数据存储到文件中
             */
    
             public static void test() throws IOException{
    
                // 首先将文件封装成对象, 判断该文件是否存在
                // 如果不存在, 则创建一个新的
                File file = new File("info.txt");
                if(!file.exists()){
                    file.createNewFile();
                }
                // 读取该文件, 流可以直接操作文件对象
                FileReader fr = new FileReader(file);
    
                // 将文件中的键值数据存储到集合中
                Properties prop = new Properties();
                prop.load(fr);
    
                // 修改数据
                prop.setProperty("zhaoliu","30");
    
                // 将修改后的 Properties 存储到文件中
                FileWriter fw = new FileWriter(file);
                prop.store(fw,"changeName");   // 这是将 info.txt 中的内容全部覆写一遍
                                               // 并不是仅仅修改了 zhaoliu
                                               // store() 方法需要两个参数
                fr.close();
                fw.close();
    
            }

    参考资料

    转载于:https://www.cnblogs.com/linkworld/p/7517483.html

    展开全文
  • 集合中的数据来自于一个文件 注意:必须要...使用load()方法读取已有文件中的数据,存储到Properties集合中 1 public class PropertiesDemo { 2 public static void main(String[] args) throws IOException ...
  • Properties集合

    2018-11-29 23:19:40
    Properties集合Properties集合类.md 双列集合,键值都是String,唯一一个可以直接结合IO流使用的集合类 从流中读取文件,直接写入文件到流中 import java.io.FileInputStream; import java.io.FileOutputStream...
  • 10、Properties集合

    2020-11-18 00:20:29
    目录一、Properties作为Map集合的使用1. Properties介绍2. Properties基本使用二、Properties作为Map集合的特有方法1. 特有方法2. 示例代码三、Properties和IO流相结合的方法1. 和IO流结合的方法2. 示例代码 一、...
  • Properties集合整理

    2014-07-10 18:30:03
    Properties集合特点: 1、该集合的键和值都是字符串类型 2、集合中的数据可以保存到zu
  • Java_Properties集合

    2014-10-10 15:32:02
    Properties集合:是hashtable的子类,具备Map集合的特点,里面存储的键值对都是字符串; 文件流和键值对相结合就是用此集合和IO技术相结合的结合容器 特点:可以用于键值对配置文件,可以操作键盘灯额数据 ...
  • Properties集合的练习

    2019-09-30 02:58:14
     请写一个程序判断是否有“lisi”这样的键存在,如果有就改变其值为”100” 分析:  A:把文本文件中的数据加载到Properties集合中  B:获取该集合的键集合  C:遍历键集合,进行判断是否是lisi键 ...
  • Properties集合的应用

    千次阅读 2016-08-22 15:30:52
    关于Properties,是一个比较特殊的集合集合里只能存字符串类型。/* Properties:是一个Map集合,存储的是属性,属性名和属性值必须都是字符串类型的,所以 这个集合类没有使用泛型 这是一个可以和流结合使用的...
  • Java IO --- Properties集合

    2018-09-20 12:56:26
    文章目录1 Properties 集合的基本功能2 Properties集合的存和取3 Properties 集合的 list() 方法 --- 主要是调试用 1 Properties 集合的基本功能 Properties集合的特点 1 该集合中的键和值都是字符串类型 2 集合中...
  • Properties集合的基本方法 的操作: import java.util.Properties; import java.util.Set; public class PropretiesDemos { public static void main(String[] args) { method(); } private static ...
  • java Properties集合与IO流Properties介绍特有方法示例代码Properties和IO流相结合的方法游戏次数案例【应用】 Properties介绍 是一个Map体系的集合类 Properties可以保存到流中或从流中加载 属性列表中的每个键...
  • Properties集合:(Map集合下的Hashtable集合下的一个子类) 特点: 1.集合中的键和值都是字符串 2.集合中的数据可以保存到流中,或者从流中获取 该集合通常用于操作以键值对形式存在的配置文件 Properties...
  • Properties集合学习 一、介绍 是一个Map体系的集合类 Properties可以保存到流中或从流中加载 属性列表中的每个键及其对应的值都是一个字符串 二、Properties使用 创建:Properties pro = new Properties(); ...
  • Properties本属于Map接口下的一个子类,由于涉及到IO流,所以...Properties集合:特点: 该集合中的键和值都是字符串类型 集合中的数据可以保存到流中,或者从流获取。通常该集合用于操作以键值对形式存在的配置文件。
  • Properties 集合 是HashTable的子类 也就是具备Map集合的特点 键值对形式存储 键值对都是字符串 不需要写泛型 是集合 和 IO技术相结合的容器 常用方法: Object setProperty(String key,String value)向集合中存储 ...
  • 1.Properties 集合  继承于HashTable的子类  也就是具备Map集合的特点  键值对形式存储 键值对都是字符串 不需要写泛型限定  是集合 和 IO技术相结合的容器  Properties 类表示了一个持久的属性集。  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,238
精华内容 36,095
关键字:

properties集合修改