java properties 权限_java面向对象编程3(4) Properties【重点详解】

Properties【重点详解】

一. 引言&概述

为什么要用Properties:为了更专业地保存程序的配置信息。

配置信息:程序运行时必须要信息

程序A:

用户名=zhangsan

密码=xxxx

IP=192.168.36.11

权限=管理员

码表=utf-8

Properties 类表示了一个持久的属性集,可以和Map集合一样存储键值对(HashMap)

持久: 把数据从内存中保存到硬盘上

Keyvalue都是String

二. 入门案例:添加键值对

Properties 把数据持久保存在硬盘上。

相当于HashMap,无序,有key  value,key和value都是String

/*

* 入门案例:为Properties添加键值对

* HashMap

* */

@Test

public void run1(){

//1、创建对象 key value都是String

Properties p = new Properties();

//2、添加键值对

//2.1、添加键值对:setProperty(key,value) 相当于map put(key,value) ,效果相同

p.setProperty("k1","v1");

p.setProperty("k2","v2");

p.setProperty("k2","v3");

//2.2、获取键值对:getProperty(key) 相当于map get(key),效果相同

String k2 = p.getProperty("k2");

System.out.println(k2);

System.out.println(p);

//3、遍历

//3.1、把Properties,变成Set集合 集合中保存的是所有的key

Set set = p.stringPropertyNames();

//3.2、遍历Set集合

for (String key : set) {

System.out.println(key+"----------"+p.getProperty(key));

}

}

三. 进阶案例1:写出数据操作-字节流

为了写出配置文件

/*

* 向Properties中保存键值对,把键值对写出成为配置文件

* 字节:万能

* 字符

* */

@Test

public void run1() throws Exception {

//1、创建Properties对象,保存数据

Properties p = new Properties();

p.setProperty("name","大哥");

p.setProperty("sex","纯爷们");

p.setProperty("age","18");

//2、创建输出流对象 扩展名必须是:.properties

FileOutputStream fos = new FileOutputStream("pd.properties");

//3、写出文件 :store 存储

p.store(fos,"这是大哥的信息");

//4、关流

fos.close();

}

四. 进阶案例2:读取数据操作-字节流

为了读取配置文件

/*

* 从Properties文件中读取数据

* */

@Test

public void run2() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileInputStream fis = new FileInputStream("pd.properties");

//3、读取 load 加载/读取

p.load(fis);

System.out.println(p);

//4、关流

fis.close();

}

五.​​​​​​​ 进阶案例3:字节流字符流对比

用字节流写出:

/*

* 用字符流读

* */

@Test

public void run3() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileReader fr = new FileReader("字节流.properties");

//3、读取 load 加载/读取

p.load(fr);

System.out.println(p);

//4、关流

fr.close();

}

/*

* 用字节流读

* */

@Test

public void run2() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileInputStream fis = new FileInputStream("字节流.properties");

//3、读取 load 加载/读取

p.load(fis);

System.out.println(p);

//4、关流

fis.close();

}

/*

* 用字节流写出

* */

@Test

public void run1() throws Exception {

//1、创建Properties对象,保存数据

Properties p = new Properties();

p.setProperty("name","大哥");

p.setProperty("sex","纯爷们");

//2、创建输出流对象 扩展名必须是:.properties

FileOutputStream fos = new FileOutputStream("字节流.properties");

//3、写出文件 :store 存储

p.store(fos,"这是大哥的信息");

//4、关流

fos.close();

}

用字符流写出:

/*

* 用字符流读

* */

@Test

public void run3() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileReader fr = new FileReader("字符流.properties");

//3、读取 load 加载/读取

p.load(fr);

System.out.println(p);

//4、关流

fr.close();

}

/*

* 用字节流读

* */

@Test

public void run2() throws Exception {

//1、创建Properties对象(准备读取数据)

Properties p = new Properties();

//2、创建输入流, 读取的文件扩展名必须是:.properties

FileInputStream fis = new FileInputStream("字符流.properties");

//3、读取 load 加载/读取

p.load(fis);

System.out.println(p);

//4、关流

fis.close();

}

/*

* 用字符流写出

* */

@Test

public void run1() throws Exception {

//1、创建Properties对象,保存数据

Properties p = new Properties();

p.setProperty("name","大哥");

p.setProperty("sex","纯爷们");

//2、创建输出流对象 扩展名必须是:.properties

FileWriter fw = new FileWriter("字符流.properties");

//3、写出文件 :store 存储

p.store(fw,"这是大哥的信息");

//4、关流

fw.close();

}

字节流写出的文件,用字节流或字符流都可以读取

字符流写出的文件,仅能用字符流读取(字节流乱码)

建议:用字节流,读取和写出

六.​​​​​​​ IDEA创建Properties文件

java properties 权限_java面向对象编程3(4) Properties【重点详解】_第1张图片

java properties 权限_java面向对象编程3(4) Properties【重点详解】_第2张图片

今日总结:

Properties: 进行持久化保存数据的集合。 (HashMap)

持久化:把内存数据保存到硬盘上。

Key和value 都是 String字符串

setProperties(key,value);     map.put(key,value)

getProperties(key); map.get(key)

stringPropertyNames(); map.keySet();

输出流:扩展名  .properties

store(输出流对象,”说明信息”);

输入流

load(输入流对象)

字节流: 写出,任何流都能读【建议】

字符流:写出,仅能字符流

​​​​​​​

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

你可能感兴趣的:(java,properties,权限)