Properties(就业班)(优先)

properties--概述

  • 属于集合体系中的一员

    我们从Properties类的定义中可以知道,它的定义没有泛型,说明Properites里面放什么类型都可以,但是一般放String
  • 总结

properties--作为map集合的基本使用

package com.itheima.test3;

import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class TT {
    public static void main(String[] args) {
   //作为map集合的基本使用(一般只添加String类型)
        Properties properties = new Properties();
     //1.增
        properties.put("小龙女","杨过");
        properties.put("郭靖","黄蓉");
        System.out.println(properties);
     //2.删
        properties.remove("小龙女");

        System.out.println(properties);
     //3.改
        //没有专门的set方法,使用put进行
        //put:如果键不存在就add,如果键存在则进行覆盖
        properties.put("小龙女","影志平");
        System.out.println(properties);
     //4.查
     //1.通过键找到值
     System.out.println(properties.get("小龙女"));
     //2.遍历
      //2.1将所有的键看成一个集合(通过键得到值)
        final Set<Object> keys = properties.keySet();
        System.out.println("开始遍历");
        for (Object key : keys) {
            System.out.println(key + ":" + properties.get(key));
        }
        System.out.println("-----------------------------------");
        //2.2.将所有的键值对看成一个对象
        final Set<Map.Entry<Object, Object>> entries = properties.entrySet();
        for (Map.Entry<Object, Object> entry : entries) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }

    }
}


Properties---特有方法

  • 这些特有的方法,在set中都有,只是换了一个名字而已

Properties-load


注意:
1.properties的load可以将文件中的键值对数据读取到Properties中(因为Properties只能存储键值对,这很好理解)。但是properties在我们以后的使用中我们一般用来读取配置文件(.properties结尾的文件)。所有properties读取的文件请使用.properties结尾

  1. 如果我们以后要手写Properties文件中的键值对,以键=值的形式,中间不要加其他的字符或者是空格

文件相对路劲

文件的相对路径是从当前模块开始的路径

package com.itheima.test3;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class TT {
    public static void main(String[] args) throws IOException {
        Properties p = new Properties();
        //test-package为模块名
        p.load(new FileReader("test-package/src/prop.properties"));
        System.out.println(p);//{password=123, username=zhangsan}
    }
}

properties可以将文件中的键值对读取出来自动添加的集合中

  • 如果我们使用的是map集合呢
    我们可以使用Io流一次读一整行,然后根据=进行切割出键和值。然后添加到maP,可以看出这样比较麻烦

Properties--store

将propertees集合中的数据写入到文件中

package com.itheima.test3;

import java.io.*;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class TT {
    public static void main(String[] args) throws IOException {
    Properties properties = new Properties();
    properties.setProperty("张三","123");
    properties.setProperty("李四","345");
    properties.setProperty("王五","789");

        FileWriter fileWriter = new FileWriter("test-package/src/prop.properties");
        properties.store(fileWriter,"");//第二个参数是properties文件中的注释
        fileWriter.close();

    }
}


posted @ 2023-06-30 18:02  一往而深,  阅读(21)  评论(0编辑  收藏  举报