java 中的 properties
2021-05-28 本文已影响0人
Exception_Cui
Properties 类 (为了方便内存中的数据持久化)
····最常用于java的配置文件
配置文件
(注意路径,如果不是在src目录下,请勿使用classload加载)
image.png
继承hashTable (和Map的底层原理相同)
最常用于,存储集合
以key=value 的 键值对的形式进行存储值。 key值不能重复。
获取jvm相关信息
/**获取jvm的相关信息*/
private static void showJVMinfo() {
Properties ps = System.getProperties();
for (String s : ps.stringPropertyNames()) {
System.out.println(s+"="+ps.getProperty(s));
}
}
package ProPerties;
import java.io.*;
import java.util.Properties;
import java.util.Set;
/**
* Created by kumamon on 2021/5/27.
*
* 为了数据持久化
*
* android的SystemProperSties 就是这种
*
* 和 map 一样,以 键 值 对的方式存储数据
*
*/
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
Properties properties=new Properties();
set(properties);
get(properties);
write(properties);
reader();
//showJVMinfo();
}
/**获取jvm的相关信息*/
private static void showJVMinfo() {
Properties ps = System.getProperties();
for (String s : ps.stringPropertyNames()) {
System.out.println(s+"="+ps.getProperty(s));
}
}
/**
* 以键值对的方式存储
* 和map相同
*
* @param ps*/
private static void set(Properties ps) {
ps.setProperty("迪丽热巴","18");
ps.setProperty("古力娜扎","17");
ps.setProperty("马尔扎哈","10");
ps.setProperty("赵丽颖","18");
}
/**
* 获取Properties的数据*/
private static void get(Properties ps) {
String dlrb = (String) ps.getProperty("迪丽热巴");
System.out.println(dlrb); //18
String unkown = (String) ps.getProperty("迪丽热巴1","没有数据");
System.out.println(unkown); //没有数据
Set<String> strings = ps.stringPropertyNames();
/**
*
key=赵丽颖 值=18
key=古力娜扎 值=17
key=马尔扎哈 值=10
key=迪丽热巴 值=18
* */
for (String s : strings) {
System.out.println("key="+s+" 值="+ps.getProperty(s));
}
}
/**
* 持久化,将内存中的数据存储到 硬盘中
*
ps.store(fileWriter,""); 第二个参数为解释说明,中文会乱码 一般不写
赵丽颖 18
古力娜扎 17
马尔扎哈 10
迪丽热巴 18
存储到 Test.prop中
*
* @param ps*/
private static void write(Properties ps) throws IOException {
FileWriter fileWriter =new FileWriter("E:\\Java_demo\\demo01\\src\\ProPerties\\Test.prop");
ps.store(fileWriter,"");
//以xml格式存储,只能使用字节流
ps.storeToXML(new FileOutputStream("E:\\Java_demo\\demo01\\src\\ProPerties\\Test.xml"), "");
}
/**
* 读取Test.prop中的数据
* */
private static void reader() throws IOException {
FileReader fileReader=new FileReader("E:\\Java_demo\\demo01\\src\\ProPerties\\Test.prop");
Properties properties=new Properties();
properties.load(fileReader);
for (String s : properties.stringPropertyNames()) {
System.out.println("由Test.prop读取"+s+"="+properties.getProperty(s));
}
}
}
image.png